我有一种情况,即卡片实体有一个人的外键。
public class Card implements java.io.Serializable {
private String cardid;
private Person person;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="USERID")
public Person getPerson() {
return this.person;
}
}
此人的默认提取类型为LAZY。我可以在查询中为EAGER指定获取类型:
QCard qCard = QCard.card;
JPQLQuery query = getQuery().from(qCard);
query.list(qCard);
感谢您的帮助。
答案 0 :(得分:20)
你试过吗
QCard qCard = QCard.card;
List<Card> cards = getQuery().from(qCard)
.innerJoin(qCard.person).fetch()
.list(qCard);
对于QueryDSL 4.0.2+
QCard qCard = QCard.card;
List<Card> cards = getQuery().from(qCard)
.innerJoin(qCard.person).fetchJoin()
.select(qCard).fetch();