Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java UnuniqueDiscoveredSqlAliasException:在自动发现本机sql查询期间遇到重复的sql别名[ASC_ID]_Java_Mysql_Sql_Hibernate_Jpa - Fatal编程技术网

Java UnuniqueDiscoveredSqlAliasException:在自动发现本机sql查询期间遇到重复的sql别名[ASC_ID]

Java UnuniqueDiscoveredSqlAliasException:在自动发现本机sql查询期间遇到重复的sql别名[ASC_ID],java,mysql,sql,hibernate,jpa,Java,Mysql,Sql,Hibernate,Jpa,我有三个表CREDENTIAL\u USER,CREDENTIAL\u EXPIRATION和ASC\u DETAILS,它们看起来像: CREDENTIAL\u USER{ASC\u ID,name,ITEM},CREDENTIAL\u USER{MONTH,YEAR,ASC\u ID}和ASC\u详细信息{ASCID,name,ROLE}。 我执行了一个简单的本机SQL联接,只选择CREDENTIAL_USER.ASC_ID和ASC_DETAAILS.ASCID作为: Query query

我有三个表
CREDENTIAL\u USER
CREDENTIAL\u EXPIRATION
ASC\u DETAILS
,它们看起来像:

CREDENTIAL\u USER{ASC\u ID,name,ITEM}
CREDENTIAL\u USER{MONTH,YEAR,ASC\u ID}
ASC\u详细信息{ASCID,name,ROLE}。

我执行了一个简单的本机SQL联接,只选择CREDENTIAL_USER.ASC_ID和ASC_DETAAILS.ASCID作为:

Query query = entityManager.createNativeQuery("SELECT ad.ASCID,ad.NAME,ad.CRED_EMPLOYEE_FNAME,ad.CRED_EMPLOYEE_LNAME,ad.CRED_EMPLOYEE_EMAIL,ad.CRED_EMPLOYEE_REMINDER,"+
                              " cu.*, ce.*, cl.* FROM ASC_DETAILS ad,CREDENTIAL_USER cu, CREDENTIAL_EXPIRATION ce, CREDENTIAL_LICENSE cl WHERE"+ 
                              " cu.IS_CRD_EMPLOYEE = true AND cl.IS_EMPLOYEE = true AND  ce.LICENSE_ID = cl.LICENSE_ID  AND cu.ASC_ID=ad.ASCID"+ 
                              " AND ce.LICENSE_EXP_YR >= "+year+" AND (ce.IS_LICENSE_YES=1 OR ce.IS_LICENSE_YES=3) AND cu.ASC_ID=ce.ASC_ID AND"+
                              " cu.ID=ce.EMPLOYEE_ID");
             List<Object[]> list = query.getResultList();

凭证用户{ASC\U ID,名称,项目},凭证用户{月份,年份,ASC\U ID} 两者都包含ASC\U ID,因此ASC\U ID在select查询中变得不明确。
按列选择数据并为每列指定单独的别名第一次使用coalesce时,我也遇到了这个问题。我通过写作解决了这个问题:

...
coalesce(column_name, 'default_value') as key_word,
...
在我的问题中

添加just coalesce(列_name,'default_value'),会创建多个别名为
coalesce的值,出现此错误。

只是为了澄清一下:“选择ad.ASCID作为ad_ASCID,选择cu.ASCID作为cu_ASCID…”应该有效。
...
coalesce(column_name, 'default_value') as key_word,
...