当前位置: 首页 > 面试题库 >

Querydsl在查询中设置获取模式

狄兴业
2023-03-14
问题内容

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

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


 类似资料:
  • 我想使搜索页面后,我点击它的按钮将被重定向到另一个页面。这一页将是这样的 还有我的路由器看起来像这样 问题是如何在Vue中获取目标页面中的查询值。JS3?这个答案仍然让我困惑,因为没有使用CompositionAPI,也没有在VueJS3中使用

  • 您可以看到,子查询中没有使用协议实体路径a1的别名,而是被协议实体路径A2的别名所取代。在querydsl中还需要做一些其他的事情才能生成这个查询吗?

  • 环境是Java、Spring-boot、Hibernat、QueryDSL、MySQL。 我有表结构 艾碧索 更新 为了澄清起见,支持UI视图的DTO包含“casename”属性。它是在将域对象转换为DTO时在服务层创建的:

  • 我将以下SQL作为本机查询运行,但我想知道是否有一种方法可以在JPAQuery中运行它,以便使用元组或类实例化。 为了精确起见,我使用了别名而不是qtypes。

  • 问题内容: 这可能吗?我想以特定的顺序获取一堆结果,然后通过其ID找出行的位置,例如: 我想按字母顺序获得1的位置,它将返回2 问题答案: SELECT id, name, rank FROM ( SELECT t.id, t.name, @rownum := @rownum + 1 AS rank FROM TABLE t, (SELECT @rownum := 0) r ORDER BY na

  • 我正在尝试为属性创建get和set方法: 设置值的关键字是什么?