根据我对 JPA 2.0 规范的阅读,以下内容应该是有效的:
select e.employeeId, new com.foo.Custom(e.employeeName, e.employeeCity) from Employee e
然而,Hibernate 抱怨这个查询,引用了第一个逗号。如果我颠倒所选表达式的顺序,它仍然会抱怨:
select new com.foo.Custom(e.employeeName, e.employeeCity), e.employeeId from Employee e
但是如果我只选择构造函数表达式,它会起作用:
select new com.foo.Custom(e.employeeName, e.employeeCity) from Employee e
尽管 JPA 2.0 规范中的语法似乎允许使用构造函数表达式,但我在 JPQL 查询的 Web 上搜索了这些示例,但这些示例不是 SELECT 子句中的唯一表达式。除了创建一个将所有数据封装在选定记录中的不同的整体自定义类之外,有没有人知道解决方法?