java - 如何对 Ebean 中的相关实体进行排序?

标签 java playframework-2.0 ebean

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

卡片.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 是否有可能,或者我应该对结果列表进行排序?

感谢您浪费您的时间。

最佳答案

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

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

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

关于java - 如何对 Ebean 中的相关实体进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23925538/

相关文章:

java - 空窗口 JavaFX

scala - 了解 play/scala 错误处理

scala - 异步事务导致IllegalStateException

java - 将 @PrePersist 和 @PreUpdate 与 Ebean 和 Play 2.5.x 一起使用不起作用?

java - 我如何通过 Ebean 检查对象的存在?

java - Log4j 每次都打印到控制台

java - 谁使用实时 Java?

java - 如何使用 (for i=firebase.getChildrencount) i>0 i-- ) 从 firebase 数据库检索每个 "i"

java - 具有复杂对象的@Repeat Form Helper - Play Framework

java - 如何在 Play Framework 中使用 Ebean 比较日期?