首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >适用于phpMyAdmin中的MySQL查询的NonUniqueDiscoveredSqlAliasException

适用于phpMyAdmin中的MySQL查询的NonUniqueDiscoveredSqlAliasException
EN

Stack Overflow用户
提问于 2015-11-21 00:29:58
回答 1查看 3.2K关注 0票数 0
代码语言:javascript
复制
+--------------+--------------+---------------------+---------------------+-------+
| dataset_1_fk | dataset_2_fk | attribute_type_1_fk | attribute_type_2_fk | image |
+--------------+--------------+---------------------+---------------------+-------+

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

代码语言:javascript
复制
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();

当它执行时,我收到这个错误:

代码语言:javascript
复制
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中工作。我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2015-12-11 00:00:27

尝试为选择列指定不同的别名,比如"SELECT ddm.image as col1,at1.name as col2,at2.name as col3“

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

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

https://stackoverflow.com/questions/33831540

复制
相关文章

相似问题

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