JPA为什么返回2个对象的查询不起作用,返回一个对象的查询工作正常

时间:2014-09-30 14:02:28

标签: java sql eclipse jpa

我正在使用EclipseLink JPA ver 2.5.1。

我有3个查询,只有返回的列不同。

以下查询正确执行:

1)

SELECT p.id, i.id 
FROM PtpFSP_R7DBImpl p, IntraNeConnectionDBImpl i 
WHERE i.neID=:neId AND i.neID=p.neID AND ((i.entityAEndpointAidString = p.aidString)  
  OR  (i.entityBEndpointAidString = p.aidString))

2)

SELECT p 
FROM PtpFSP_R7DBImpl p, IntraNeConnectionDBImpl i 
WHERE i.neID=:neId AND i.neID=p.neID AND ((i.entityAEndpointAidString = p.aidString)  
  OR  (i.entityBEndpointAidString = p.aidString))

为什么以下一个会返回异常?:

3)

SELECT p, i 
FROM PtpFSP_R7DBImpl p, IntraNeConnectionDBImpl i 
WHERE i.neID=:neId AND i.neID=p.neID AND ((i.entityAEndpointAidString = p.aidString) 
 OR  (i.entityBEndpointAidString = p.aidString))

例外(这似乎是无稽之谈)如下:

  

异常[EclipseLink-6015](Eclipse持久性服务 -   2.5.1.v20130918-f2b9fc5):org.eclipse.persistence.exceptions.QueryException异常   说明:无效的查询键[entityAEndpointAidString]   表达

我知道这样的查询不是最优的,但为什么它仍无法正常工作?

1 个答案:

答案 0 :(得分:0)

它不知道如何将(p,i)映射到Object中,但它应该能够管理投影。 您的映射必须不正确。检查关系。