首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >本机连接查询禁用Hibernate NonUniqueDiscoveredSqlAliasException

本机连接查询禁用Hibernate NonUniqueDiscoveredSqlAliasException
EN

Stack Overflow用户
提问于 2022-08-18 14:44:06
回答 1查看 104关注 0票数 0

我想在spring中加入一些带有原生查询的表。查询如下:

代码语言:javascript
复制
SELECT * FROM employee AS e 
INNER JOIN c ON e.id = c.employee_id 
INNER JOIN b ON c.arw_id = b.arw_id 
INNER JOIN a ON b.ap_id = a.id

现在,我在[id][arw_id]上得到了一个Hibernate [id]。我可以用using注释修复第二个表,但是表的id是实体,我真的不想更改它们的名称.

有什么建议吗?还是说是个冬眠虫?

干杯,尼可拉斯

编辑:为了澄清:我收到的第一个错误消息是这个Encountered a duplicated sql alias [arw_id] during auto-discovery of a native-sql query; nested exception is org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasExce[...]。然后,我将查询更改为:

代码语言:javascript
复制
SELECT * FROM employee AS e 
INNER JOIN c ON e.id = c.employee_id 
INNER JOIN b ON USING (arw_id) 
INNER JOIN a ON b.ap_id = a.id

并得到以下错误:Encountered a duplicated sql alias [id] during auto-discovery of a native-sql query; nested exception is org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasExce[...]

EN

回答 1

Stack Overflow用户

发布于 2022-08-18 15:11:33

您真的需要employeecba中的所有列吗?你把你的结果投进了什么?

如果要将其转换为Employee类,只需使用

代码语言:javascript
复制
SELECT e.* FROM employee AS e 
INNER JOIN c ON e.id = c.employee_id 
INNER JOIN b ON c.arw_id = b.arw_id 
INNER JOIN a ON b.ap_id = a.id

是什么让您如此确信是因为idarw_id而得到了错误?它们是不同的字段,它们不应该给出您提到的错误。或者这很可能是因为您的cba中有相同的列名--在本例中,您的列名变得不明确。

如果您能向我们展示一段您正在使用此查询的代码,那就更清楚了。

当我看到您的编辑时,您所做的只是使用USING而不是ON。这意味着您在两个表之间共享您的arw_id,这将消除结果集中出现的arw_id的双重现象。如果您的id是相同的情况,那么为什么不对您的id做同样的处理呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73405061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档