Querydsl set fetch mode in a query

隐身守侯 提交于 2019-12-04 10:10:28

问题


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;
}
}

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

Thanks for any help.


回答1:


Did you try

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

For QueryDSL 4.0.2+

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


来源:https://stackoverflow.com/questions/23627482/querydsl-set-fetch-mode-in-a-query

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!