gpt4 book ai didi

java - 如果所有属性都是键的一部分,为什么 hibernate 的 getPropertyNames 返回一个空列表?

转载 作者:行者123 更新时间:2023-12-03 23:13:26 25 4
gpt4 key购买 nike

这里有一个有趣的令人头疼的问题,可以让您开始 5 月份的假期!

我有一个像这样的 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() 的调用返回了一个空列表。如果在 composite-id 之外至少有一个属性,我没有任何问题。我有一个笨拙的解决方法是在 id 之外添加一个虚拟字段(糟糕!)然后突然一切正常。

知道为什么会发生这种情况以及我可以做些什么来解决它吗?

预先感谢您的帮助!

最佳答案

进一步挖掘后,我发现 getIdentifierType()getIdentifierPropertyName() 可以完成这项工作。对于像这样的复合键,我检查类型以查看它是否是 CompositeCustomType 或 ComponentType 的实例,如果是,则将其放入临时变量中,然后在该临时变量上调用 getPropertyNames()变种。

关于java - 如果所有属性都是键的一部分,为什么 hibernate 的 getPropertyNames 返回一个空列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com