gpt4 book ai didi

mysql - 适用于 phpMyAdmin 中的 MySQL 查询的 NonUniqueDiscoveredSqlAliasException

转载 作者:行者123 更新时间:2023-11-29 21:49:07 27 4
gpt4 key购买 nike

我有一个带有四个外键和一个图像的表:

+--------------+--------------+---------------------+---------------------+-------+
| dataset_1_fk | dataset_2_fk | attribute_type_1_fk | attribute_type_2_fk | image |
+--------------+--------------+---------------------+---------------------+-------+

使用两个数据集的名称,我想选择图像和两个属性的名称。这是我的 hibernate 代码:

HibernateUtil
.getCurrentSession()
.createSQLQuery(
"SELECT ddm.image, at1.name, at2.name " +
"FROM dataset_dataset_matrices AS ddm " +
" JOIN dataset AS d1 ON d1.id = ddm.dataset_1_fk " +
" JOIN dataset AS d2 ON d2.id = ddm.dataset_2_fk " +
" JOIN attribute_type AS at1 ON at1.id = ddm.attribute_type_1_fk " +
" JOIN attribute_type AS at2 ON at2.id = ddm.attribute_type_2_fk " +
"WHERE d1.name = :dataset_1 AND d2.name = :dataset_2"
)
.setString("dataset_1", dataset_1)
.setString("dataset_2", dataset_2)
.list();

执行时我收到此错误:

org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [name] during auto-discovery of a native-sql query
at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:594)

但是当我从 phpMyAdmin 发出相同的查询时,它工作正常。另外,如果我从 SELECT 语句中删除 at1.nameat2.name,查询将在 Hibernate 中运行。我该如何解决这个问题?

最佳答案

尝试为您选择的列提供不同的别名,例如“选择 ddm.image 作为 col1,at1.name 作为 col2,at2.name 作为 col3”

看来 hibernate 不会自动生成不同的别名。如果查询结果具有相同的值,则可能会发生此问题。引用:https://github.com/querydsl/querydsl/issues/80

关于mysql - 适用于 phpMyAdmin 中的 MySQL 查询的 NonUniqueDiscoveredSqlAliasException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33831540/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com