【问题标题】:How can I sort related entities in Ebean?如何对 Ebean 中的相关实体进行排序?
【发布时间】:2014-05-29 04:07:09
【问题描述】:

我正在使用 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 或我应该对结果列表进行排序?

感谢您浪费时间。

【问题讨论】:

    标签: java playframework-2.0 ebean


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      使用这个

      Card.find.byId().orderBy("id asc"); //这将按照id(实体)给出排序顺序

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-15
        相关资源
        最近更新 更多