我遇到的情况是,卡实体具有某个人的外键。

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);
谢谢你的帮助。

最佳答案

你试过了吗

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();

09-15 20:34