簡體   English   中英

找不到JPA構造函數類[Emp]-oracle.toplink.essentials.exceptions.EJBQLException

[英]JPA constructor class [Emp] not found - oracle.toplink.essentials.exceptions.EJBQLException

這是這個問題的延續

我命名為

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.

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

SELECT列表中可以使用構造函數來返回一個或多個Java實例。 指定的類不需要是實體,也不必映射到數據庫。 構造函數名稱必須完全合格。

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

我設法解決了該錯誤,可能對其他人有用。

在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

謝謝。

禮貌

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM