私のスキーマでは、テーブル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によると、「プロパティまたはフィールド名は、永続プロパティまたは関連付けられたクラスのフィールドまたはフィールド内の埋め込みクラスの名前に一致する必要があります。」考えられる解決策の1つは 'List'を使用し、 'SortedSet'を構築するための' @ PostLoad'メソッドを実装することです。 –
jorgegm