本文介绍了Querydsl在查询中设置提取模式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一种情况,即卡实体有一个人的外键。

I have a situation where a Card entity has a foreign key to a Person.

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指定获取类型:

The default fetch type for the person is LAZY. Can I specify the fetch type to EAGER within a query:

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+


For QueryDSL 4.0.2+

QCard qCard = QCard.card;
List<Card> cards = getQuery().from(qCard)
    .innerJoin(qCard.person).fetchJoin()
    .select(qCard).fetch();

这篇关于Querydsl在查询中设置提取模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-12 05:24