2014-12-15 2 views
0

Это в продолжение этого questionJPA конструктор класса [Emp] не найден - oracle.toplink.essentials.exceptions.EJBQLException

У меня есть namedQuery, как

select new Emp(o.empNo, o.empName) from Emp o 

и конструктор определяется как

public Emp(String empNo, String empName) { 
    this.empNo= empNo; 
    this.empName= empName; 
} 

Я получаю сообщение об ошибке, когда я исполняю

Exception [TOPLINK-8013] (Oracle TopLink Essentials - 2.1 
(Build b52-fcs (09/24/2008))): 
oracle.toplink.essentials.exceptions.EJBQLException 
Exception Description: Error compiling the query [Emp.findAll: 
select new Emp(o.empNo, o.empName) from Emp o ], line 1, column 9: 
constructor class [Emp] not found. 

ответ

1

http://openjpa.apache.org/builds/1.2.0/apache-openjpa-1.2.0/docs/manual/jpa_langref.html#jpa_langref_constructor

Конструктор может быть использован в списке выбора, чтобы вернуть один или несколько экземпляров Java. Указанный класс не обязательно должен быть сущностью или быть сопоставлен с базой данных. Имя конструктора должно быть полностью квалифицированным.

SELECT NEW com.company.PublisherInfo(pub.id, pub.revenue, mag.price) 
+0

Спасибо, мне удалось решить эту проблему, увидеть мой ответ. – user75ponic

0

мне удалось устранить эту ошибку, может быть полезным для других.

В namedQuery вместо

select new Emp(o.empNo, o.empName) from Emp o 

обеспечивают полное имя класса, то есть <packagename>.<classname>

select new test.entity.Emp(o.empNo, o.empName) from Emp o 

Спасибо.

Courtesy

+0

мы отправили то же самое в одно и то же время :) –

+0

@AdrianB. Да, но я дам вам это. – user75ponic

 Смежные вопросы

  • Нет связанных вопросов^_^