In meinem Schema habe ich eine Tabellen Cutter
, Property
und PropertyValue
. Teilspalten:Sortieren Hibernate @ OneToMany über verwandte Eigenschaft?
Cutter
id
Property
id
name
desc
PropertyValue
property_id
cutter_id
value
Ich möchte wie etwas tun:
@Entity
@Table(name = "Cutter")
public
class
Cutter implements Serializable
{
@OrderBy("property.name asc")
@OneToMany(mappedBy = "cutter") protected SortedSet<PropertyValue> properties;
}
Aber das führt zu der offensichtlichen Ausnahme: Unknown column 'properties0_.property.name' in 'order clause'
.
Ich machte PropertyValue
implementieren Comparable
, aber das scheint nicht genug zu sein. Hibernate wollte die @OrderBy
Annotation trotzdem.
ist 'name' eine Eigenschaft von' PropertyValue'? Wenn ja, benutze einfach '@OrderBy (" name asc ")' – jorgegm
@jorgegm, wenn das nicht klar war, aber nein, 'name' ist eine Eigenschaft von' Property', weshalb das nicht einfach ist. – Rick
Ops, ich habe es nicht bemerkt. Gemäß dem Javadoc von OrderBy ist es nicht möglich: "Der Name der Eigenschaft oder des Felds muss dem einer persistenten Eigenschaft oder eines Feldes der zugehörigen Klasse oder eingebetteten Klasse entsprechen." Eine mögliche Lösung besteht darin, eine 'List' zu verwenden und eine '@ PostLoad'-Methode zu implementieren, um' SortedSet' zu erstellen. –
jorgegm