簡體   English   中英

如果所有屬性都是密鑰的一部分,為什么hibernate的getPropertyNames返回一個空列表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM