[英]Why does hibernate's getPropertyNames return an empty list if all attributes are part of the key?
這是五月開始的一個有趣的頭腦!
我有一個像這樣的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
之外至少有一個屬性,我沒有任何問題。 我所擁有的kludgy解決方法是在id之外添加一個虛擬字段(yuck!)然后突然一切正常。
知道為什么會這樣,我能做些什么來解決它?
在此先感謝您的幫助!
在進一步挖掘之后,我發現getIdentifierType()
和getIdentifierPropertyName()
完成了這項工作。 對於像這樣的復合鍵,我檢查類型以查看它是否是CompositeCustomType或ComponentType的實例,如果是,則將其拋入臨時var,並在該臨時var上調用getPropertyNames()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.