栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

具有多个SELECT NEW语句的jpa构造函数表达式

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

具有多个SELECT NEW语句的jpa构造函数表达式

从技术上讲,根据JPQL select子句的定义,它将允许多个构造函数表达式。

  • select_clause :: =选择[DISTINCT] select_expression {,select_expression} *
  • select_expression :: = single_valued_pa​​th_expression | 聚合表达式|
    Identification_variable |
    对象(identification_variable)| constructor_expression

  • Constructor_expression :: =新的Constructor_name(Constructor_item
    {,Constructor_item} *)
  • constructor_item :: = single_valued_pa​​th_expression | 聚合表达式
  • 聚合表达式:: = {AVG | MAX | MIN | SUM}([DISTINCT]
    state_field_path_expression)| COUNT([DISTINCT]
    标识变量|
    state_field_path_expression | single_valued_association_path_expression )

例:

SELECT NEW com.test.model.UserName(u.firstname, u.lastname), NEW com.test.model.UserEmail(u.email) FROM User u

但是,我刚刚发现Hibernate不允许这样做。当我将JPA提供程序从Hibernate切换到Eclipselink时,它可以工作。因此,如果允许使用这种查询语法,则可能需要咨询您的提供商。

但是请注意,使用NEW运算符时,构造函数必须具有参数(至少一个)。因此,此表达式不起作用:

SELECT NEW LanguageDTO()

关于您的第二个问题,是否可以使用

List
Map
,我很困惑您想如何在查询中使用这些集合。但是,请注意,按照JPQL
SELECT_CLAUSE的定义,您的SELECT子句中不可能具有集合值的路径表达式。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412965.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号