Diferencia entre revisiones de «Ejemplo de integracion Roo y Oracle»
Línea 33: | Línea 33: | ||
</code> | </code> | ||
− | == Características == | + | == Definición del modelo de datos == |
+ | |||
+ | Como hicimos anteriormente, creamos las entidades y sus atributos: | ||
+ | |||
+ | <code> | ||
+ | entity --class ~.domain.Cubierta --testAutomatically | ||
+ | field string --fieldName nombre --notNull --sizeMin 2 | ||
+ | entity --class ~.domain.Base --testAutomatically | ||
+ | field string --fieldName nombre --notNull --sizeMin 2 | ||
+ | entity --class ~.domain.Pizza --testAutomatically | ||
+ | field string --fieldName nombre --notNull --sizeMin 2 | ||
+ | field number --fieldName precio --type java.lang.Float | ||
+ | field set --fieldName coberturas --element ~.domain.Cubierta | ||
+ | field reference --fieldName base --type ~.domain.Base | ||
+ | entity --class ~.domain.Pedido --testAutomatically | ||
+ | field string --fieldName nombre --notNull --sizeMin 2 | ||
+ | field string --fieldName direccion --sizeMax 30 | ||
+ | field number --fieldName importe --type java.lang.Float | ||
+ | field date --fieldName fechaEntrega --type java.util.Date | ||
+ | field set --fieldName pizzas --element ~.domain.Pizza | ||
+ | </code> | ||
+ | |||
+ | Para probar el funciomiento ejecutar | ||
+ | <code> | ||
+ | controller all --package ~.web | ||
+ | perform package | ||
+ | </code> | ||
+ | y deployar. En este punto se puede verificar el modelo de datos accediendo a la base de datos. | ||
+ | |||
+ | == Características de la creación del modelo == | ||
* En el archivo persistence.xml el valor defecto de la propiedad "hibernate.hbm2ddl.auto" es "create", por lo cual se generara el esquema de bd al correr la aplicación. Para no perder los datos en el siguiente deploy deberá actualizarse dicho valor a "validate". | * En el archivo persistence.xml el valor defecto de la propiedad "hibernate.hbm2ddl.auto" es "create", por lo cual se generara el esquema de bd al correr la aplicación. Para no perder los datos en el siguiente deploy deberá actualizarse dicho valor a "validate". | ||
* Crea los objetos de base de datos y sus relaciones al ejecutar la aplicación por primera vez. | * Crea los objetos de base de datos y sus relaciones al ejecutar la aplicación por primera vez. |
Revisión del 15:24 19 jul 2010
Haremos el Ejemplo de proyecto web ABM con Spring Roo accediendo a una base de datos Oracle en lugar de una base en memoria.
Contenido
Comando de persistencia
Habiendo generado el proyecto, el comando
persistence setup --database ORACLE --provider HIBERNATE
nos permite trabajar con un esquema en una base de datos oracle utilizando Hibernate como ORM.
Como vemos, genera un archivo database.properties donde está la información de conexión.
Por la versión de Spring Roo hay un error en el pom.xml por dependencias. Ver Problemas_frecuentes_con_Spring_Roo#Missing_artifact_com.oracle:ojdbc14:jar:10.2.0.2:compile
Configurando las propiedades de acceso a la base de datos
Podemos cambiar la configuración editando el archivo database.properties o mediante los comandos que provee roo, lo cual nos permitiría dejar un script listo para correrlo en otra ocasión.
El comando para ver todas las propiedades del archivo es:
database properties list
Para cambiar los valores:
database properties set --key database.password --value unaPassword
database properties set --key database.username --value unUsuario
database properties set --key database.url --value jdbc:oracle:thin:@unHost:unPuerto:unEsquema
Definición del modelo de datos
Como hicimos anteriormente, creamos las entidades y sus atributos:
entity --class ~.domain.Cubierta --testAutomatically
field string --fieldName nombre --notNull --sizeMin 2
entity --class ~.domain.Base --testAutomatically
field string --fieldName nombre --notNull --sizeMin 2
entity --class ~.domain.Pizza --testAutomatically
field string --fieldName nombre --notNull --sizeMin 2
field number --fieldName precio --type java.lang.Float
field set --fieldName coberturas --element ~.domain.Cubierta
field reference --fieldName base --type ~.domain.Base
entity --class ~.domain.Pedido --testAutomatically
field string --fieldName nombre --notNull --sizeMin 2
field string --fieldName direccion --sizeMax 30
field number --fieldName importe --type java.lang.Float
field date --fieldName fechaEntrega --type java.util.Date
field set --fieldName pizzas --element ~.domain.Pizza
Para probar el funciomiento ejecutar
controller all --package ~.web
perform package
y deployar. En este punto se puede verificar el modelo de datos accediendo a la base de datos.
Características de la creación del modelo
- En el archivo persistence.xml el valor defecto de la propiedad "hibernate.hbm2ddl.auto" es "create", por lo cual se generara el esquema de bd al correr la aplicación. Para no perder los datos en el siguiente deploy deberá actualizarse dicho valor a "validate".
- Crea los objetos de base de datos y sus relaciones al ejecutar la aplicación por primera vez.
- Provee un campo "version" para el control de cambios que autoincrementa con cada update del registro.
- Provee un campo "id" usando una única secuencia para todo el modelo de datos.