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

goo*_*oko 8 java ebean playframework-2.0

我正在使用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);

}
Run Code Online (Sandbox Code Playgroud)

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);
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢你浪费你的时间.

mgu*_*min 9

您可以@javax.persistence.OrderBy@OneToMany字段上添加注释.

例如,如果您positionFinalMark实体上有字段,则可以使用以下代码在该字段上进行排序:

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