0
我有一個表示一個表的域對象類。這個類與另一個表有關聯,但是源類的屬性與目標類的屬性沒有相同的名稱,我不知道如何休眠映射它。如何在Hibernate中映射一組對象而不用主鍵同名?
下面是類的一個例子爲具有集(一個CT許多ř實例):
public class CT {
// This is the property in the property-ref down below
private String b;
// The set of Rs I want to get - there may be none that correspond to a CT instance.
private Set rs;
}
public class R {
// This property is mapped to the column name below.
private String rBc;
}
<!--Snippet of the mapping for class CT-->
<set name="rs" lazy="true" sort="MyComparator" table="R" >
<key column="R_COLUMN_NAME_THAT_REPRESENTS_THE_RELATIONSHIP" property-ref="b" />
<one-to-many class="CLASS_THAT_R_IS" />
</set>
休眠接受此映射,但是當我拉起集合Rs的從CT實例我知道應該存在,我只是得到一個空的PersistentSet。
請注意,每個CT實例可能沒有或多於一個R是完全可能的。這就是爲什麼我有比較器在那裏 - 我無法弄清楚如何輕鬆地告訴Hibernate如何執行沒有顯式SQL的ORDER BY子句(我在Hibernate映射中猶豫不決)。
難道某人幫助我在這裏?
我沒有清楚地知道對象的一面,你能說更多關於對象在對象一邊做什麼嗎? CT和R的生命週期和所有權狀況? 我已經成功地將我的所有藏品編寫成多對一。在多對一和一對多之間你可以做什麼似乎有區別。 – PanCrit 2009-06-19 17:11:42