我正在学习QueryDSL,我有一个基本的问题.我正在try 连接两个表,并从两个表中 Select 数据.
在我的示例中,我有一个Members表和Book表.Book有一个外键MemberID,该外键MemberID返回给Member.id.(把它想象成拥有书籍的人.)
在SQL中,我可能会这样做:
SELECT member.name, book.title FROM member, book WHERE book.member_id = member.id;
我正在try 从QueryDSL做同样的事情.这是我的代码,显然是错误的:
List<Tuple> results = queryFactory
.selectFrom(member)
.innerJoin(member.books, book)
.select(member.id, member.name, book.name)
.fetchJoin()
.fetch();
我得到了这个错误:
Org.hibernate.query.SemancException:查询指定JOIN取数, 但获取的关联的所有者不在SELECT中 List[SqmListJoin(Member1).book(Book))]
我找到的所有示例都显示了如何进行连接以过滤结果.例如,Books与Members结合在一起,根据Member.name获得图书.但他们只归还书籍,而不是联合起来.