所以我正在尝试编写一个如下所示的查询dsl查询:
JPAQuery bookQuery = new JPAQuery();
QBook qBook = QBook.book;
bookQuery.from(qBook);
BooleanBuilder predicates = new BooleanBuilder();
predicates
.or(qBook.author.id.eq(personId))
.or(qBook.editor.id.eq(personId));
bookQuery.where(predicates);
但是查询失败了,因为编辑器有时会为null。如何执行此查询,以便在编辑器为空时返回作者ID匹配的结果?
这是一个人为的例子,但这是我需要解决的技术问题。
答案 0 :(得分:0)
只有这样我才能弄清楚如何在相同的JPAQuery中使用子查询,如下所示:
<input ... class="my-input" data-counted="N">
答案 1 :(得分:0)
你也可以使用左连接
JPAQuery query = new JPAQUery();
QBook book = QBook.book;
query.from(book)
.leftJoin(book.editor, editor)
.where(book.author.id.eq(personId).or(editor.id.eq(personId)))
.list(book);