【问题标题】:JPA Hibernate drops tablesJPA Hibernate 删除表
【发布时间】:2012-09-05 13:33:42
【问题描述】:

我在 Maven 项目的持久层中使用休眠,对此我真的很陌生。有时,当通过 jpa/hibernate 从数据库执行读取操作时,一些表会被删除。该项目没有实现那种功能。这是一个已知的问题?这些动作只是读取动作。

【问题讨论】:

  • 请发布您的 persistence.xml

标签: hibernate jpa


【解决方案1】:

现在我终于找到了答案。似乎集成测试中的某些配置使它们针对错误的数据库(删除表的数据库)运行,而不是我们想要使用的 im-db。并且集成测试应该进行删除,但随后无法创建新表。所以这个问题的答案是松散耦合到问题,而不是我们不正确的配置。但也许这个答案会让其他有同样问题的人三思而后行。

【讨论】:

    【解决方案2】:

    我也是 hibernate 的新手,但我记得 hibernate.xml 或 persistence.xml 中有一个设置,您可以在其中指定供应商删除并在每次运行该应用程序时生成架构和表。

    以下属性将在应用程序启动时创建表,并且当您下次运行应用程序时它不会重新生成表(如果已存在)。

    <property name="hbm2ddl.auto" value="create"/>
    

    “create-drop”的值将创建表并在会话结束时删除。

     <property name="hbm2ddl.auto" value="create-drop"/>
    

    看看这个文档Jboss reference

    希望对你有帮助。

    【讨论】:

    • 我没有为这个属性使用任何值。它还能丢表吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多