Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么冬眠';如果所有属性都是键的一部分,则s getPropertyNames返回空列表?_Java_Hibernate_Persistence - Fatal编程技术网

Java 为什么冬眠';如果所有属性都是键的一部分,则s getPropertyNames返回空列表?

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映射,如下所示:

<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函数。。。所以,看起来我可能只是被卡住了:(