<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://dosideas.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Capa_de_Persistencia_de_Spring_Roo</id>
		<title>Capa de Persistencia de Spring Roo - Historial de revisiones</title>
		<link rel="self" type="application/atom+xml" href="https://dosideas.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Capa_de_Persistencia_de_Spring_Roo"/>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Capa_de_Persistencia_de_Spring_Roo&amp;action=history"/>
		<updated>2026-05-05T08:14:15Z</updated>
		<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Capa_de_Persistencia_de_Spring_Roo&amp;diff=5358&amp;oldid=prev</id>
		<title>Cblatter: Página creada con '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 generad…'</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Capa_de_Persistencia_de_Spring_Roo&amp;diff=5358&amp;oldid=prev"/>
				<updated>2010-07-22T12:00:04Z</updated>
		
		<summary type="html">&lt;p&gt;Página creada con &amp;#039;Haremos el &lt;a href=&quot;/wiki/Ejemplo_de_proyecto_web_ABM_con_Spring_Roo&quot; title=&quot;Ejemplo de proyecto web ABM con Spring Roo&quot;&gt;Ejemplo de proyecto web ABM con Spring Roo&lt;/a&gt; accediendo a una base de datos Oracle en lugar de una base en memoria.  == Comando de persistencia ==  Habiendo generad…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Haremos el [[Ejemplo de proyecto web ABM con Spring Roo]] accediendo a una base de datos Oracle en lugar de una base en memoria.&lt;br /&gt;
&lt;br /&gt;
== Comando de persistencia ==&lt;br /&gt;
&lt;br /&gt;
Habiendo generado el proyecto, el comando &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
persistence setup --database ORACLE --provider HIBERNATE &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nos permite trabajar con un esquema en una base de datos oracle utilizando Hibernate como ORM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: roo_database_properties.gif | 650 px]]&lt;br /&gt;
&lt;br /&gt;
Como vemos, genera un archivo database.properties donde está la información de conexión.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
== Configurando las propiedades de acceso a la base de datos ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
El comando para ver todas las propiedades del archivo es:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
database properties list&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para cambiar los valores:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
database properties set --key database.password --value unaPassword&lt;br /&gt;
database properties set --key database.username --value unUsuario&lt;br /&gt;
database properties set --key database.url --value jdbc:oracle:thin:@unHost:unPuerto:unEsquema&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Definición del modelo de datos ==&lt;br /&gt;
&lt;br /&gt;
Como hicimos anteriormente, creamos las entidades y sus atributos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
entity --class ~.domain.Cubierta --testAutomatically&lt;br /&gt;
field string --fieldName nombre --notNull --sizeMin 2&lt;br /&gt;
entity --class ~.domain.Base --testAutomatically &lt;br /&gt;
field string --fieldName nombre --notNull --sizeMin 2&lt;br /&gt;
entity --class ~.domain.Pizza --testAutomatically&lt;br /&gt;
field string --fieldName nombre --notNull --sizeMin 2&lt;br /&gt;
field number --fieldName precio --type java.lang.Float&lt;br /&gt;
field set --fieldName coberturas --element ~.domain.Cubierta&lt;br /&gt;
field reference --fieldName base --type ~.domain.Base&lt;br /&gt;
entity --class ~.domain.Pedido --testAutomatically&lt;br /&gt;
field string --fieldName nombre --notNull --sizeMin 2&lt;br /&gt;
field string --fieldName direccion --sizeMax 30&lt;br /&gt;
field number --fieldName importe --type java.lang.Float&lt;br /&gt;
field date --fieldName fechaEntrega --type java.util.Date&lt;br /&gt;
field set --fieldName pizzas --element ~.domain.Pizza&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para probar el funciomiento ejecutar&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
controller all --package ~.web&lt;br /&gt;
perform package&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
y deployar. En este punto se puede verificar el modelo de datos accediendo a la base de datos. Los nombres de las tablas y columnas se corresponden con los nombres de las entidades y sus atributos, separando los nombres compuestos con &amp;quot;_&amp;quot;. Ejemplo: fecha_entrega.&lt;br /&gt;
&lt;br /&gt;
== Características de la creación del modelo ==&lt;br /&gt;
* En el archivo persistence.xml el valor defecto de la propiedad &amp;quot;hibernate.hbm2ddl.auto&amp;quot; es &amp;quot;create&amp;quot;, 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 &amp;quot;validate&amp;quot;.&lt;br /&gt;
* El agregado de atributos en la aplicación provoca un alter en la tabla correspondiente.&lt;br /&gt;
* La eliminación de atributos en la aplicación no se refleja en la base de datos.&lt;br /&gt;
* Crea los objetos de base de datos y sus relaciones al ejecutar la aplicación por primera vez.&lt;br /&gt;
* Provee un campo &amp;quot;version&amp;quot; para el control de cambios que autoincrementa con cada update del registro.&lt;br /&gt;
* Provee un campo &amp;quot;id&amp;quot; usando una única secuencia para todo el modelo de datos.&lt;br /&gt;
&lt;br /&gt;
== Ver tambien ==&lt;br /&gt;
* [https://jira.springsource.org/browse/ROO-435 Introspeccion a un base de datos existente]&lt;br /&gt;
* [http://tomchikoore.com/2010/03/19/tutorial-for-using-spring-roo-with-an-existing-database/ Tutorial para usar Spring Roo con una base de datos existente]&lt;br /&gt;
* [[Spring Roo]]&lt;/div&gt;</summary>
		<author><name>Cblatter</name></author>	</entry>

	</feed>