2012-07-11 24 views
1

我是从煤层2.2.2.Final具有EntityQuery问题煤层2.2.2.Final新的运营商,我不能用“新”运营商在EJBQL,在EJBQL

“选择新的COM。 ej.Prest(prest.id,prest.name)from Perst perst“

任何人都解决了这个问题?

回答

2

如果com.ej.Prest是JPA的实体,您不需要使用new,只是对其进行查询:

select p from Prest p 

甚至:

from Prest 

如果它不是一个JPA实体,然后你不能在from子句中使用它,你只需要在那里使用JPA实体。例如,你可以这样做(在这个例子中,MyEntitynamesurname性质JPA实体在构造函数用于Prest

select new com.ej.Prest(me.name, me.surname) from MyEntity me 

此外,您还需要定义用正确的参数的构造函数,在这种情况下,在com.ej.Prest

public Prest(String name, String surname) { 
    // constructor code here 
} 
+0

https://community.jboss.org/thread/202454?tstart=0 – 2012-07-23 11:53:34

+0

你并不需要做的,只是重写'getCountEjbql()'和返回你想要查询( '在你的案例中选择来自Perst prest'的计数(*))。 – EmirCalabuch 2012-07-24 16:55:42

相关问题