gpt4 book ai didi

hibernate - 如何使 Hibernate 不删除表

转载 作者:行者123 更新时间:2023-12-03 14:19:40 26 4
gpt4 key购买 nike

我正在使用 hibernate ,每当我尝试添加记录时,它都会删除表并再次添加。它从不使用现有表并对其进行更改。

这是我的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>

这是我保存数据的方式:
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.getCurrentSession();
session.beginTransaction();
//...
session.save(newrecord)
session.getTransaction().commit();

最佳答案

<property name="hibernate.hbm2ddl.auto">update</property>

每次创建 session 工厂时都会告诉 hibernate 更新数据库模式。


SessionFactory factory = new Configuration().configure().buildSessionFactory();

建立一个新的 session 工厂。

一个 SessionFactory在 wole 应用程序生命周期内应该只构建一次。它应该创建一次,然后重用。您是否阅读了 hibernate reference manual ?

关于hibernate - 如何使 Hibernate 不删除表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6611437/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com