我想用这样的Ebean创建一个查询:
SELECT
t0.book_id, t0.name, t1.accno
FROM
books t0
LEFT OUTER JOIN
external_refs t1 ON t0.book_id = t1.book_id AND t1.type = "doi"
WHERE
t0.book_id in (1, 2, 3, 4)
实体“书”包含一对多关系
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="book_id", referencedColumnName = "book_id")
public List<ExternalRef> externalRefs;
这是我创建查询的方式:
List<Integer> bookIds;
Query<Book> query = Ebean.createQuery(Book.class).where(Expr.in("book_id", bookIds));
如何将部件AND t1.type = "doi"
添加到此查询?
答案 0 :(得分:0)
我认为无法改进您的查询以满足您的要求。但我构建了不同的结果,返回了期望的结果。这是代码:
Query<ExternalRef> queryER = Ebean.createQuery(ExternalRef.class).where(Expr.and (Expr.eq("type", "doi"), Expr.in("book.book_id", bookIds) ));
因此,我正在查询ExternalRefs而不是Books。