在我的模式中,我有一個表Cutter
,Property
和PropertyValue
。部分列:通過相關屬性對Hibernate @OneToMany進行排序?
Cutter
id
Property
id
name
desc
PropertyValue
property_id
cutter_id
value
我想要做的事,如:
@Entity
@Table(name = "Cutter")
public
class
Cutter implements Serializable
{
@OrderBy("property.name asc")
@OneToMany(mappedBy = "cutter") protected SortedSet<PropertyValue> properties;
}
但是,這將導致明顯的例外:Unknown column 'properties0_.property.name' in 'order clause'
。
我製作PropertyValue
實施Comparable
,但這似乎不夠。無論如何,Hibernate想要註釋@OrderBy
。
是'name'屬性'PropertyValue'?如果是,只需使用'@OrderBy(「name asc」)' – jorgegm
@jorgegm,抱歉如果不清楚,但不是,'name'是'Property'的屬性,這就是爲什麼這不直截了當。 – Rick
ops,我沒有注意到它。根據OrderBy的javadoc,這是不可能的:「屬性或字段名稱必須與其中的關聯類或嵌入類的持久性屬性或字段相對應。」一個可行的解決方案是使用'List'並實現'@ PostLoad'方法來構建'SortedSet'。 –
jorgegm