SEVERE: Local Exception Stack:
Exception [EclipseLink-7092] (Eclipse Persistence Services - 2.0.0.v20091127-r5931):
org.eclipse.persistence.exceptions.ValidationException
Exception Description: Cannot add a query whose types conflict with an existing query.
Query To Be Added: [ReadAllQuery(name="Voter.findAll" referenceClass=Voter
jpql="SELECT v FROM Voter v")] is named: [Voter.findAll] with arguments [[]].
The existing conflicting query: [ReadAllQuery(name="Voter.findAll" referenceClass=
Voter jpql="SELECT v FROM Voter v")] is named: [Voter.findAll] with arguments: [[]].
答案 0 :(得分:3)
我也遇到过这个问题而且没什么意义。我只有一个实体bean有一个定义的查询,它继续告诉我这是问题所在。我做了一个停止,然后开始GF3,重新部署我的应用程序,我仍然得到它...更糟糕的是,我甚至没有使用查询。
有一点我不明白..为什么EclipseLink在GF中使用?这是GF的一部分吗?我使用的是Eclipse IDE,但是我没有从Eclipse中部署。我从命令行的ant构建脚本部署。我猜GF必须使用一些EclipseLink(以前是TopLink?)。
上面的一个答案是确保没有陈旧的文件,取消部署应用程序等。如果有人想出这个可以提供更多细节并解释它,那将会很棒。如果它是另一个有错误的查询,那么如果显示错误而不是这个误导性错误肯定会很好。
到目前为止,我已经停止了GF,删除了所有表,重新启动,重新部署(在autodeploy文件夹中),并且仍然立即得到此问题。我通常会在短时间内多次构建/部署到autodeploy文件夹,因为我会快速更改然后构建/重新部署。
答案 1 :(得分:2)
只是那些仍在努力解决这个错误的人:
取消部署您的应用程序并检查是否有任何陈旧(可能已锁定)的文件。这将导致旧的命名查询仍然存在,因此不会替换它们。
删除文件并重新部署。错误应该消失。
编辑:
还要检查您是否还没有做过...... WHERE o.object_id = :id
...而不是... WHERE o.object = :object
...
这是解决我的问题的方法。花了我3个星期来解决这个问题。 EclipseLink在异常方面不是很清楚。实际上有一个查询编译错误。相反,它会抛出重复的查询异常。
答案 2 :(得分:2)
我也遇到了这个问题,我发现异常与错误文件根本没有关系,问题是来自另一个查询例如: @NamedQuery(name =“ChannelType.ALL”,query =“SELECT channelType FROM ChannelType channelType WHERE channelType.applicationClient.applicationClientId =:applicationClientId ORDER BY channelType.channelTypId ASC”)
问题来自“ORDER BY channelType.channelTypId”,除了按主键排序外,当我删除此行时,异常也消失了。
也许其他人可以解释为什么会这样。 感谢
答案 3 :(得分:1)
看起来您已经定义了两次查询。在同一实体上,在另一个实体上,或在orm.xml
答案 4 :(得分:0)
由于您没有显示任何代码,因此不确定您正在做什么,但这是EclipseLink文档中有关错误的说明ECLIPSELINK-07092:
ECLIPSELINK-07092:无法添加类型与其冲突的查询 现有查询。要添加的查询: [{0}]以参数命名:[{1}] [{2}]。现有的冲突查询: [{3}]名为:[{4}],带参数: [{5}]。强>
原因:EclipseLink检测到自定义之间存在冲突 查询具有相同的名称和参数 参加会议 操作:确保不会多次向会话添加任何查询 或更改查询名称以便 查询可以区分 其他
根据以上描述和跟踪,您似乎在会话中多次添加具有相同查询名称的查询(实际上相同)。您不应该(或使用其他查询名称)。
答案 5 :(得分:0)
此错误也可能来自命名查询格式错误,我有一个y o.activo - >这告诉我指定的错误。
答案 6 :(得分:0)
我疯了,但至少,这不起作用:
@NamedQuery(name = "xyx", query = "SELECT count(v) FROM Classe v WHERE v.id =:_id);
这有效:
@NamedQuery(name = "xyx", query = "SELECT count(v) FROM Classe v WHERE v.id = :_id);
"WHERE v.id =:_id"
是错误
答案 7 :(得分:0)
我遇到了问题...... 真正的异常是@Named Query格式错误,但堆栈跟踪只是说:
“异常说明:无法添加类型与之冲突的查询 现有的查询“
我的解决方案:
在持久性单元中,将表生成策略更改为“无”,将验证策略更改为“无”。再次运行时,我获得了真正的异常(格式错误的查询)。我解决了查询中的错误,返回到持久性单元中的旧配置,所有异常都消失了。