Estoy usando hibernate y cada vez que trato de agregar un registro, deja caer la tabla y la vuelve a agregar. Nunca usa la tabla existente y realiza cambios en eso.Cómo hacer que Hibernate no elimine tablas
Esta es la parte relevante de mi hibernate.cfg.xml
:
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
<property name="hibernate.connection.url">jdbc:derby://localhost:1527/sample</property>
<property name="hibernate.connection.username">user</property>
<property name="hibernate.connection.password">password</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name = "current_session_context_class">thread</property>
<!-- Mapping the entities -->
<mapping class="inputDetails.Table1"/>
<mapping class="inputDetails.Table2"/>
<!--mapping resource="contact.hbm.xml"/-->
</session-factory>
</hibernate-configuration>
Así es como puedo guardar los datos:
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.getCurrentSession();
session.beginTransaction();
//...
session.save(newrecord)
session.getTransaction().commit();
¿Hay alguna manera de que la sesión cargue los contenidos de la base de datos ya existentes? Hay valores en la base de datos después de que la aplicación deje de ejecutarse, y cuando vuelva a iniciar la aplicación, quiero que agregue registros además de lo que ya está en la base de datos. – Sujen
Lee mi respuesta nuevamente y lee el manual de referencia. Usando hibernate.hbm2ddl.auto = auto, le está diciendo a hibernate que actualice el esquema cada vez que cree una fábrica de sesión. Entonces recrea la tabla. Esto es útil para pruebas rápidas con una base de datos vacía. Si tiene algunos datos que desea conservar, modifique su esquema manualmente y elimine esta opción de configuración de su archivo de configuración. –
Oh, bien, estaba confundido porque pensé que la propiedad se usaba para mantener los contenidos de la base de datos en lugar de volver a crearlos (algo que leo de otro lado y supongo que es lo contrario de lo que pensaba). Gracias, intentaré tu solución cuando tenga la oportunidad. – Sujen