问题
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