如何从实体生成表

时间:2011-04-14 20:16:08

标签: java seam

我目前正在使用eclipse jpa工具开展一个接缝项目;是否可以从我的实体定义中自动生成sql表?如果是这样,我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

这取决于您使用的JPA实现。 使用Hibernate,您可以在create中的update属性中指定“hibernate.hbm2ddl.auto”或“persistence.xml”:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">
  <persistence-unit name="yourPersistenceUnit" transaction-type="JTA">
    <description>Your Persistence Unit</description>
    <jta-data-source>java:/DefaultDS</jta-data-source>
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
      <property name="hibernate.hbm2ddl.auto" value="create"/>
      <property name="hibernate.show_sql" value="true"/>
      <property name="hibernate.format_sql" value="true"/>
      <property name="hibernate.transaction.flush_before_completion" value="true"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
    </properties>
  </persistence-unit>
</persistence>

hibernate.hbm2ddl.auto属性的可能值为:

  • create:在启动时创建数据库表和索引
  • create-drop:在启动时创建数据库表和索引,在关机时删除
  • update:当应用程序启动时,检查数据库架构并根据需要更新添加缺少的表和列
  • validate:当应用程序启动时,请检查数据库架构,如果缺少某些表或列,则会失败。