我正在尝试从 hibernate 获取尽可能多的元数据,但我正在努力克服一些限制,例如唯一性。
我一直在尝试使用:
AbstractEntityPersister metadata = (AbstractEntityPersister) sessionFactory.getClassMetadata( clazz );
boolean[] uniqueness = metadata.getPropertyUniqueness();
但似乎唯一性数组对于所有属性总是显示 false
,我还使用 EntityPersister
来获取可空性 (getPropertyNullability
) 并且工作正常。
有什么想法吗?
(顺便说一句,如果重要的话,我正在使用 HBM。几乎想直接解析 HBM 文件,但似乎是一个非常丑陋的解决方案)。
最佳答案
刚刚查看了 AbstractEntityPersister 的源代码。看起来像这样填充:
propertyUniqueness[i] = prop.getValue().isAlternateUniqueKey();
这似乎表明“getPropertyUniqueness”更适合命名为“getAlternateUniqueKey”。
可能,getPropertyUniqueness
只会返回 true
unique-key="true"
而不是为了
unique="true"
在您的hbm.xml
中。
关于java - Hibernate 元数据的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27295474/