@TargetSE(valueSE={METHODSE,FIELDSE}) @RetentionSE(valueSE=RUNTIMESE) public @interface OrderBy
value 順序付け要素の構文は、次のように orderby_list です。
orderby_list::= orderby_item [,orderby_item]*
orderby_item::= [property_or_field_name] [ASC | DESC]
ASC または DESC が指定されていない場合、ASC (昇順)が想定されます。
エンティティの関連付けに順序付け要素が指定されていない場合、関連付けられたエンティティの主キーによる順序付けが想定されます。
プロパティまたはフィールド名は、関連するクラスまたはその中の埋め込みクラスの永続的なプロパティまたはフィールドの名前に対応している必要があります。順序付けで使用されるプロパティまたはフィールドは、比較演算子がサポートされている列に対応している必要があります。
ドット("." )表記は、埋め込まれた属性内の属性を参照するために使用されます。ドット表記で使用される各識別子の値は、それぞれの埋め込みフィールドまたはプロパティの名前です。
OrderBy アノテーションは、要素コレクションに適用できます。OrderBy が基本型の要素コレクションに適用される場合、順序付けは基本オブジェクトの値によって行われ、プロパティまたはフィールド名は使用されません。埋め込み可能な型の要素コレクションの順序を指定する場合は、ドット表記を使用して、順序を決定する 1 つまたは複数の属性を指定する必要があります。
オーダー列が指定されている場合、OrderBy アノテーションは使用されません。
Example 1:
@Entity
public class Course {
...
@ManyToMany
@OrderBy("lastname ASC")
public List<Student> getStudents() {...};
...
}
Example 2:
@Entity
public class Student {
...
@ManyToMany(mappedBy="students")
@OrderBy // ordering by primary key is assumed
public List<Course> getCourses() {...};
...
}
Example 3:
@Entity
public class Person {
...
@ElementCollection
@OrderBy("zipcode.zip, zipcode.plusFour")
public Set<Address> getResidences() {...};
...
}
@Embeddable
public class Address {
protected String street;
protected String city;
protected String state;
@Embedded protected Zipcode zipcode;
}
@Embeddable
public class Zipcode {
protected String zip;
protected String plusFour;
}
OrderColumnpublic abstract StringSE value
orderby_list。次のように指定されます。
orderby_list::= orderby_item [,orderby_item]*
orderby_item::= [property_or_field_name] [ASC | DESC]
ASC または DESC が指定されていない場合、ASC (昇順)が想定されます。
ordering 要素が指定されていない場合、関連付けられたエンティティの主キーによる順序付けが想定されます。
Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.