我想开发一个数据库结构,其中每个“对象”都将放在自己的表中。比如,对象是“house”,“car”等。表的结构对于每个对象是相同的。表以这种方式命名:公共前缀和对象名称。此外,每个对象都有两个以一对多关系的关联表。
为此,我创建了一个命名策略,该策略根据对象的名称返回物理表的名称。
问题是我可以收到一个没有表的对象,所以我需要创建它。我尝试使用直接SQL查询,它在向表中添加一些外来关系之前工作正常。现在我收到以下异常:
Exception in thread "main" org.hibernate.DuplicateMappingException: Table [INV_OBJECT_ATTRIBS] contains logical column name [id] referenced by
multiple physical column names: [INV_ATTRIB_ID], [INV_KEY_ID]
我的问题是:
是否可以从代码中请求Hibernate创建基于.hbm.xml文件的表?像session->createTableFromXML(...)
?
答案 0 :(得分:2)
是的,请查看Hibernate架构生成工具hbm2ddl:
http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/toolsetguide.html