|
|
(No se muestran 3 ediciones intermedias de 2 usuarios) |
Línea 1: |
Línea 1: |
− | Haremos el [[Ejemplo de proyecto web ABM con Spring Roo]] accediendo a una base de datos Oracle en lugar de una base en memoria.
| |
| | | |
− | == Comando de persistencia ==
| |
− |
| |
− | Habiendo generado el proyecto, el comando
| |
− |
| |
− | <code>
| |
− | persistence setup --database ORACLE --provider HIBERNATE
| |
− | </code>
| |
− |
| |
− | nos permite trabajar con un esquema en una base de datos oracle utilizando Hibernate como ORM.
| |
− |
| |
− | [[Archivo: roo_database_properties.gif | 650 px]]
| |
− |
| |
− | 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:
| |
− | <code>
| |
− | database properties list
| |
− | </code>
| |
− |
| |
− | Para cambiar los valores:
| |
− | <code>
| |
− | 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
| |
− | </code>
| |
− |
| |
− | == 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".
| |
− | * El agregado de atributos en la aplicación provoca un alter en la tabla correspondiente.
| |
− | * La eliminación de atributos en la aplicación no se refleja en la base de datos.
| |
− | * 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.
| |
− |
| |
− | == Ver tambien ==
| |
− | * [[Spring Roo]]
| |