Openxava con Oracle database

Jonathan
2013-06-17
2013-06-18
  • Jonathan

    Jonathan - 2013-06-17

    Hola a todos
    espero que me puedan ayudar
    tengo el manual en español de openxava con ejemplos, pero justamente sus ejemplos son usando base de datos postgresql, estoy realizando el tutorial de facturas, y tengo en un pc instalado oracle y ya he logrado conectarlo a mi otro pc usando sqldeveloper y ningún problema, hasta que comencé a ver los xml que son necesarios editar para conectar la app a la base de datos, creí que no tendría mucha diferencia la configuración para que esto funcionara, pero si que tienen y no he encontrado documentación al respecto.
    he buscado bastante, pero algunos dicen que hay que modificar ciertos archivos, otros mencionan otros y no me han funcionado, porque son rompecabezas,
    donde puedo obtener un demo para ver y entender un buen ejemplo de la configuración.
    o donde está una buena documentación de oracle y openxava al respecto.
    de antemano muchas gracias.

     
  • pigbar

    pigbar - 2013-06-17

    Hola,
    La verdad no hay gran diferencia en cuanto a como trabajar con cualquier base de datos de Hibernate.

    El persistence.xml

     <!-- Tomcat + Oracle -->
       <persistence-unit name="default">
               <provider>org.hibernate.ejb.HibernatePersistence</provider>
               <non-jta-data-source>java:comp/env/jdbc/LaboralesDS</non-jta-data-source>
               <class>org.openxava.session.GalleryImage</class>
           <properties>
                <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect"/>
                <property name="hibernate.show_sql" value="false"/>
                <property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.SingletonEhCacheProvider" />  
                <property name="net.sf.ehcache.configurationResourceName" value="/ehcache.xml" />  
                <property name="hibernate.cache.use_query_cache" value="true" />  
                <property name="hibernate.cache.use_second_level_cache" value="true" />  
                <property name="hibernate.generate_statistics" value="false" />
           </properties>
       </persistence-unit>
    

    Nota: Elimina las propiedades de ehcache que no aplican en tu caso.

    En el context de tomcat:

    <Resource url="jdbc:oracle:thin:@163.243.53.10:1541:BCTS01T" 
        driverClassName="oracle.jdbc.driver.OracleDriver" 
        password="DB_PASSWORD" username="DB_USER" maxWait="10000" maxIdle="5" maxActive="20" type="javax.sql.DataSource" auth="Container" name="jdbc/LaboralesDS"/>
    

    Como ves, nada nuevo bajo el sol.

    A mi me funciona sin novedades
    Espero te sea útil ese ejemplo.

    Saludos

     
  • Jonathan

    Jonathan - 2013-06-18

    Muchas gracias por la respuesta ahora la probaré :D

     
  • Jonathan

    Jonathan - 2013-06-18

    Hola
    tengo un error al momento de de hacer un Ant Build a build.xml
    tengo entendido que al momento de hacer Run a este archivo se generan los campos en mi base de datos a partir del modelo que he llamado igual en la tabla

    pero en el log obtengo
    [hibernatetool] org.hibernate.HibernateException: JDBC Driver class not found: oracle.jdbc.driver.OracleDriver

    No entiendo que debo hacer
    me estoy metiendo hace muy poco a esto y no quiero usar postgre, sino oracle
    he bajado el driver ojdbc5.jar para build.xml updateSchema, y no logro avanzar
    espero me puedan ayudar, con algún proyecto simple que se conecte bien para ver que tengo mal, lo agradecería mucho.
    GRacias.

    Por cierto pigbar cuando pusiste
    <Resource url="jdbc:oracle:thin:@163.243.53.10:1541:BCTS01T"
    BCTS01T es el SID? ya que en el mio tengo XE esto esta bien?

     
    Last edit: Jonathan 2013-06-18
  • pigbar

    pigbar - 2013-06-18

    Hola,
    Lo del Driver y la configuración para actualizar el Esquema de la BD ya ha sido respondido en los foros. No obstante observa que tu archivo build.xml contiene:

    <!--
        Se conecta a tu base de datos y actualiza el esquema para que conincida con 
        el actual de tu aplicación. 
        Recuerda dar valor a la propiedad schema.path.
        (También puedes usar directamente la tarea ant 'hibernatetool')
        -->
        <target name="actualizarEsquema">
            <ant antfile="../OpenXava/build.xml" target="updateSchemaJPA">          
                <property name="persistence.unit" value="junit"/>
                <property name="schema.path" value="PON AQUI LA RUTA DEL CONTROLADOR JDBC"/>
            </ant>
        </target>   
    

    En lo del Datasource la declaración "BCTS01T" es parte de mi URl de ejemplo y es el nombre de la BD de Oracle que uso.

    Saludos

     
  • Jonathan

    Jonathan - 2013-06-18

    Muchas gracias
    Me funciona
    ahora cuando actualizo el modelo si cambia el schema en la bd
    lo que si en el ejemplo del libro por ser postgre se crea un campo llamado number y esto me hacia problemas en oracle porque Number es un tipo de datos, y en postgre quiere decir que se crea un campo con clave primaria.
    asi que lo cambie por id, y me funciona, aunque no me aparece la llavecita de primary en la vista.
    Creo que es porque si el campo Number cambia el nombre a Id entonces el getNumber y setNumber deben ser getId y setId
    muchas gracias.
    saludos.

     
    Last edit: Jonathan 2013-06-18

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks