Java 为什么冬眠';如果所有属性都是键的一部分,则s getPropertyNames返回空列表?
这里有一个有趣的挠头开始五月份了 我有一个hibernate映射,如下所示:Java 为什么冬眠';如果所有属性都是键的一部分,则s getPropertyNames返回空列表?,java,hibernate,persistence,Java,Hibernate,Persistence,这里有一个有趣的挠头开始五月份了 我有一个hibernate映射,如下所示: <hibernate-mapping default-lazy="false"> <class name="my.class.name" table="MY_CLASS_TABLE"> <composite-id> <key-property name="prop1" column="PROP_1" /> <key-prop
<hibernate-mapping default-lazy="false">
<class name="my.class.name" table="MY_CLASS_TABLE">
<composite-id>
<key-property name="prop1" column="PROP_1" />
<key-property name="prop2" column="PROP_2" />
<key-property name="prop3" column="PROP_3" />
</composite-id>
</class>
</hibernate-mapping>
还有一个函数,它遍历并构建类名和属性的“字典”。在进入这个类之前,我没有任何问题,并且由于某种原因,对getPropertyNames()
的调用返回一个空列表。如果在复合id
之外至少有一个属性,则我没有任何问题。我所面临的困难是在id之外添加一个虚拟字段(糟糕!),然后突然一切正常
知道为什么会发生这种情况吗?我能做些什么来解决它
提前感谢您的帮助 在进一步挖掘之后,我发现
getIdentifierType()
和getIdentifierPropertyName()
做这项工作。对于像这样的复合键,我检查类型以查看它是否是CompositeCustomType或ComponentType的实例,如果是,则将其放入一个临时变量中,并对该临时变量调用getPropertyNames()
。好吧,经过进一步研究,我了解getPropertyNames()
将只返回非id项,而且似乎没有类似的ID函数。。。所以,看起来我可能只是被卡住了:(