【发布时间】:2017-04-13 14:20:22
【问题描述】:
在 Hibernate 3 中,在 org.hibernate.cfg.Configuration 类中有一个 Map classes 属性,其中包含 org.hibernate.mapping 类型的对象.PersistentClass.
在一个 Grails 应用程序(它在底层使用 hibernate)中,我正在扩展一个扩展 org.hibernate.cfg.Configuration 的类。这使我可以利用 Map 类并执行以下操作:
for(PersistentClass pc : classes.values()) {
for(Iterator iterator = pc.getTable().getForeignKeyIterator(); iterator.hasNext(); ) {
ForeignKey fk = (ForeignKey) iterator.next();
iterator.remove();
}
}
基本上,我正在删除某些 3rd 方表的外键。
我想升级到 Hibernate 5,但新的 Configuration 类没有我所依赖的 Map 类。
如何获取 PersistentClass 对象的映射,以便继续删除它们的外键?
如果不应该再通过配置完成,我如何访问持久对象?通过什么课?
请帮忙。我被卡住了。
【问题讨论】:
-
JimmyB 它不是重复的。请阅读这两个问题。您知道如何获取 Hibernate 5 中所有 PersistentClass 对象的 Map 吗?
-
对我来说,它是重复的。有点。另一个问题的答案显示了如何从 Hibernate 获取
MetadataImplementor。在这方面,您应该能够调用,例如,getEntityBindings()以获取所有PersistentClasses。你还需要什么?
标签: hibernate configuration hbm2ddl hibernate-5.x