JPA:选择几个新的JPQL

时间:2016-06-22 10:49:03

标签: java jpa select jpql

你能不能告诉我是否可以使用几个新的Object制作一个选择的JPQL 像这样:

选择新的QueryOfSelectionList(新参数(q1,q1t),新参数(q2,q2t)) 来自......

我成功做到这样:new QueryOfSelectionList(q1,q1t,q2,q2t) 但是我不喜欢,因为我会增加参数的数量,并且可能有几个param的建构者(q1,q1t或q1)。

我试过这个例子,但我有:例外:org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:新

此异常适用于新的param(q1,q1t)。

感谢您的帮助。

基督教

1 个答案:

答案 0 :(得分:2)

http://docs.oracle.com/cd/E12839_01/apirefs.1111/e13946/ejb3_langref.html发布的文件中,我们看到:

以下是构造函数表达式的语法:

  

constructor_expression :: = new constructor_name(constructor_item {,   constructor_item} *)

进一步说:

  

可以在SELECT列表中使用构造函数来返回一个或多个构造函数   Java实例。指定的类不需要是实体或   要映射到数据库。构造函数名称必须完整   合格。

一个例子是:

  

SELECT NEW com.company.PublisherInfo(pub.id,pub.revenue,mag.price)       FROM Publisher pub JOIN pub.magazines mag WHERE mag.price> 5.00

因此无法使用Select new QueryOfSelectionList ( new param(q1, q1t), new param(q2, q2t) ) From之类的表达式。希望这会有所帮助。