如何在Ebean中对相关实体进行排序?

时间:2014-05-29 04:07:10

标签: java playframework-2.0 ebean

我正在使用Play Framework和Ebean ORM。说,我有2个相关的实体类(Card.java和FinalMark.java)

Card.java

@Entity
public class Card extends Model {

  private static final long serialVersionUID = 1L;
  @Id
  . . .
  @OneToMany(mappedBy = "card")
  public List<FinalMark> finalMarks;
  . . .
  public static Finder<Integer, Card> find =
    new Finder<>(Integer.class, Card.class);

}

FinalMark.java

@Entity
public class FinalMark extends Model {

  private static final long serialVersionUID = 1L;
  @Id
  @ManyToOne
  public Card card;
  . . .
  public static Finder<Integer, FinalMark> find = new Finder<>(Integer.class,
    FinalMark.class);
}

当我获取Card实例(例如,通过Card.find.byId())时,也将获取所有相关的FinalMark实例。但我怎么能对它们进行排序呢?是否可以通过Ebean或我对结果列表进行排序?

感谢您浪费时间。

2 个答案:

答案 0 :(得分:8)

您可以在@javax.persistence.OrderBy字段中添加@OneToMany注释。

例如,如果您的position实体上有FinalMark字段,则可以使用以下代码在该字段上订购:

@Entity
public class Card extends Model {
    ...
    @OneToMany(mappedBy = "card")
    @OrderBy("position asc")
    public List<FinalMark> finalMarks;
    ...
}

答案 1 :(得分:3)

使用此

Card.find.byId().orderBy("id asc"); //这将按id(实体)

给出排序顺序
相关问题