为与一个 JPA 实体类相关的所有表生成创建脚本
我想为特定实体类生成创建表脚本。
我可以使用 hibernate (hbm2dll 工具)自动生成所有类的完整脚本( 从 JPA 带注释的实体类自动生成数据模式),但我不知道如何过滤它,因此只保留与一个实体类相关的部分。
问候, 劳雷斯
i want to generate the Create Table Script for a specific entity Class.
I can auto-generate the complete Script for all of my classes with hibernate (hbm2dll tool) ( Auto generate data schema from JPA annotated entity classes ) but i don't know how to filter this so only the part that relates to one entity class remains.
Greetings,
Laures
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我想如果您使用该单个实体配置 persistence.xml 文件,排除所有其他未列出的实体,然后在启用 DDL 自动生成的情况下启动实体管理器工厂,您可能会得到这样的结果。
I guess if you configure your persistence.xml file with that single entity, exclude all other unlisted entities, and then start your entity manager factory with the DDL auto generation enabled, you might get just that.
您的实体之间没有声明任何关联吗? Hibernate 将根据领域模型的知识生成外键和映射表等。
如果您只需要单个独立表的 DDL,您可以仅使用该实体配置会话工厂并将其指向空数据库。然后,您可以从日志中记录 DDL(由 Hibernate 生成,如上所述),然后在获得所需内容后删除该数据库。
但是,如果存在任何关联,那么 hibernate 将无法执行此操作。
Are there no associations declared between your entities? Hibernate will generate Foreign Keys and mapping tables etc based on knowledge of your domain model.
If you just wanted the DDL for a single isolated table you could configure your session factory with just that entity and point it at an empty database. You can then record the DDL from the logs (generated by Hibernate as you mention above) and then delete this database when you've got what you need.
However if there any associations then hibernate will not be able to do this.
我自己用代码处理了脚本生成。基本查询是通过调用 hbm2ddl 工具生成的,我的代码向其中添加了一些详细信息(例如添加如果不存在则创建查询;添加某些创建索引查询;...)
I handled the script generation in code myself. the base queries are generated by calling the hbm2ddl tool and my code adds some details to them (like adding if not exists to the create queries; adding certain create index queries; ...)