如果使用了List集合,可以同时配合注释@OrderBy使查询出来的集合类按照一定的顺序排列。例如以下代码中将按照AddressEO中的属性postcode升序排列。
@Entity
@Table(name = "customer")
public class CustomerEO implements java.io.Serializable {
……
private List<AddressEO> addresses = new ArrayList<AddressEO>();
@OneToMany(mappedBy="customer")
@OrderBy("postcode ASC")
public List<AddressEO> getAddresses() {
return addresses;
}
public void setAddresses(List addresses) {
this.addresses = addresses;
}
}
其中,注释@OrderBy定义如下所示。
@Target({METHOD, FIELD}) @Retention(RUNTIME)
public @interface OrderBy {
String value() default "";
}
l @OrderBy用于标注集合中实体对象的顺序。如果不指定,将按照实体的的主键升序排列。
l 可以同时指定多个列的排列顺序,并指定升序还是降序。例如首先按照id升序,然后按照postcode 降序排列的代码如下所示。
@OrderBy("id ASC,postcode DESC")
l 若不指定升序ASC或者降序DESC,默认为升序排列。