为与ONE JPA实体类相关的所有表生成创建脚本

时间:2011-05-26 14:59:17

标签: hibernate jpa hbm2ddl

我想为特定的实体类生成创建表脚本。

我可以使用hibernate(hbm2dll工具)(Auto generate data schema from JPA annotated entity classes)为我的所有类自动生成完整的脚本,但我不知道如何过滤这个,所以只有与一个实体类相关的部分仍然存在

问候, Laures

3 个答案:

答案 0 :(得分:0)

您的实体之间是否没有声明关联? Hibernate将根据您的域模型知识生成外键和映射表等。

如果您只想将DDL用于单个隔离表,则可以使用该实体配置会话工厂并将其指向空数据库。然后,您可以从日志中记录DDL(如上所述,由Hibernate生成),然后在获得所需内容时删除此数据库。

但是如果有任何关联,那么hibernate将无法做到这一点。

答案 1 :(得分:0)

我想如果您使用该单个实体配置persistence.xml文件,排除所有其他未列出的实体,然后在启用DDL自动生成的情况下启动实体管理器工厂,您可能会得到这个。

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
   <persistence-unit name="stackoverflow" transaction-type="RESOURCE_LOCAL">
        <class>com.stackoverflow.model.SingleEntity</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="create"/>
        </properties>
   </persistence-unit>
</persistence>

答案 2 :(得分:0)

我自己用代码处理脚本生成。通过调用hbm2ddl工具生成基本查询,我的代码向它们添加一些细节(如添加,如果不存在于创建查询;添加某些创建索引查询; ...)