Java Ebean:如何正确选择包含值的行?

Java Ebean:如何正确选择包含值的行?,java,sql,playframework,ebean,Java,Sql,Playframework,Ebean,我有一个关于埃宾的问题。不幸的是,我找不到任何帮助我的文档。我希望选择值为true的所有行,以及OneToMany关系的所有成员也具有值为true的所有行 以下是一个例子: @Entity public class Book extends Model { @Id public Long id; public Boolean isAvailable; public static Finder<Long, Book> find = new Finder<>

我有一个关于埃宾的问题。不幸的是,我找不到任何帮助我的文档。我希望选择值为true的所有行,以及OneToMany关系的所有成员也具有值为true的所有行

以下是一个例子:

@Entity
public class Book extends Model {
  @Id
  public Long id;
  public Boolean isAvailable;

  public static Finder<Long, Book> find = new Finder<>(Long.class, Book.class);
}
@实体
公共类图书扩展模型{
@身份证
公共长id;
公共布尔值不可用;
publicstaticfinder=newfinder(Long.class、Book.class);
}
我想完成FindAllBysAvailable方法:

@Entity
public class Category extends Model {
  @Id
  public Long id;
  public Boolean isAvailable;
  @OneToMany(mappedBy="category", cascade=CascadeType.ALL)
  public List<Book> books;

  public static Finder<Long, Category> find = new Finder<>(Long.class, Category.class);

  public static List<Category> findAllByIsAvailable() {
    // Find all categories where isAvailable == true and books.isAvailable == true
  }
}
@实体
公共类类别扩展模型{
@身份证
公共长id;
公共布尔值不可用;
@OneToMany(mappedBy=“category”,cascade=CascadeType.ALL)
公开书目;
公共静态查找器find=新查找器(Long.class、Category.class);
公共静态列表FindAllBysAvailable(){
//查找isAvailable==true和books.isAvailable==true的所有类别
}
}

首先,您需要将
@ManyToOne
关系添加到您的
书籍
类中,如下所示:

@Entity
public class Book extends Model {
  @Id
  public Long id;
  public Boolean isAvailable;

  @ManyToOne
  public Category category;

  public static Finder<Long, Book> find = new Finder<>(Long.class, Book.class);
}
.fetch(“books”)
意味着将两个表进行左连接

你可以在这里读到很多关于埃宾的书 还有一些例子

return Category.find.fetch("books").where().eq("isAvailable",true).eq("books.isAvailable",true).findList();