Java Ebean:如何正确选择包含值的行?
我有一个关于埃宾的问题。不幸的是,我找不到任何帮助我的文档。我希望选择值为true的所有行,以及OneToMany关系的所有成员也具有值为true的所有行 以下是一个例子: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<>
@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();