如何从实体生成表

发布于 2024-11-01 09:23:18 字数 81 浏览 1 评论 0原文

我目前正在使用 eclipse jpa 工具开发一个 seam 项目;是否可以从我的实体定义自动生成 sql 表?如果是这样,我该如何实现这一目标?

I am currently working on a seam project using eclipse jpa tools; is it possible to automatically generate sql tables from my entity definitions? If so, how do I achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

撑一把青伞 2024-11-08 09:23:18

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

<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:创建数据库启动时的表和索引并在关闭时删除
  • 更新:当应用程序启动时,检查数据库架构并根据需要进行更新,添加缺少的表和列
  • 验证:当应用程序启动时,检查数据库架构,如果缺少某些表或列,则会失败。

It depends on the JPA implementation you are using.
With Hibernate you can specify 'create' or 'update' in the hibernate.hbm2ddl.auto properties in 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>

Possible values for hibernate.hbm2ddl.auto property are:

  • create: create database tables and indexes at startup
  • create-drop: create database tables and indexes at startup and drop at shutdown
  • update: when the application starts, check the database schema and update as needed adding missing tables and columns
  • validate: when the application starts, check the database schema and fails if there is some missing table or column.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文