我试图从休眠中获取尽可能多的元数据,而且我正在努力解决一些限制问题,比如唯一性。
我一直在尝试使用:
AbstractEntityPersister metadata = (AbstractEntityPersister) sessionFactory.getClassMetadata( clazz );
boolean[] uniqueness = metadata.getPropertyUniqueness();
但似乎唯一性数组总是对所有属性说false
,我也使用EntityPersister
来获取可空性(getPropertyNullability
)并且它工作正常
有什么想法吗?
(我正在使用HBM btw,如果重要的话。几乎想要直接解析HBM文件,但看起来似乎是一个非常难看的解决方案。)
答案 0 :(得分:1)
刚看了一下AbstractEntityPersister的源代码。似乎这样填充:
propertyUniqueness[i] = prop.getValue().isAlternateUniqueKey();
似乎表明“getPropertyUniqueness”更适合命名为“getAlternateUniqueKey”。
可能,getPropertyUniqueness
仅对
unique-key="true"
而不是
unique="true"
在hbm.xml
。