NonUniqueDiscoveredSqlAliasException: Rencontré un dupliqué alias sql [ASC_ID] pendant l'auto-découverte d'un natif de la requête sql
J'ai trois tables CREDENTIAL_USER
, CREDENTIAL_EXPIRATION
et ASC_DETAILS
- dont ressemble :
CREDENTIAL_USER { ASC_ID, name, ITEM}
, CREDENTIAL_USER { MONTH, YEAR, ASC_ID}
et ASC_DETAILS {ASCID, NAME, ROLE}.
J'ai exécuté une simple natif de jointure SQL pour sélectionner uniquement CREDENTIAL_USER.ASC_ID et 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();
Son bon fonctionnement sur le plan local, Mais se org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [ASC_ID] during auto-discovery of a native-sql query
exception sur JBoss
serveur
Stack-trace :
23:30:00,300 ERROR [stderr] (pool-10-thread-1) javax.persistence.PersistenceException: org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [ASC_ID] during auto-discovery of a native-sql query
23:30:00,301 ERROR [stderr] (pool-10-thread-1) at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1361)
23:30:00,302 ERROR [stderr] (pool-10-thread-1) at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1289)
23:30:00,303 ERROR [stderr] (pool-10-thread-1) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:261)
23:30:00,303 ERROR [stderr] (pool-10-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
23:30:00,304 ERROR [stderr] (pool-10-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
23:30:00,304 ERROR [stderr] (pool-10-thread-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
23:30:00,305 ERROR [stderr] (pool-10-thread-1) at java.lang.reflect.Method.invoke(Method.java:616)
23:30:00,305 ERROR [stderr] (pool-10-thread-1) at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:310)
23:30:00,306 ERROR [stderr] (pool-10-thread-1) at sun.proxy.$Proxy42.getResultList(Unknown Source)
23:30:00,307 ERROR [stderr] (pool-10-thread-1) at com.asc.dao.UserDAO.getPendingNotificationCredEmployee(UserDAO.java:991)
23:30:00,307 ERROR [stderr] (pool-10-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
23:30:00,308 ERROR [stderr] (pool-10-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
23:30:00,308 ERROR [stderr] (pool-10-thread-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
23:30:00,309 ERROR [stderr] (pool-10-thread-1) at java.lang.reflect.Method.invoke(Method.java:616)
23:30:00,309 ERROR [stderr] (pool-10-thread-1) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
23:30:00,310 ERROR [stderr] (pool-10-thread-1) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)
23:30:00,311 ERROR [stderr] (pool-10-thread-1) at sun.proxy.$Proxy34.getPendingNotificationCredEmployee(Unknown Source)
23:30:00,311 ERROR [stderr] (pool-10-thread-1) at com.asc.service.UserService.getPendingNotificationCredEmployee(UserService.java:2661)
23:30:00,312 ERROR [stderr] (pool-10-thread-1) at com.asc.service.UserService$$FastClassByCGLIB$$de8fbe27.invoke(<generated>)
23:30:00,312 ERROR [stderr] (pool-10-thread-1) at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
23:30:00,313 ERROR [stderr] (pool-10-thread-1) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:617)
23:30:00,314 ERROR [stderr] (pool-10-thread-1) at com.asc.service.UserService$$EnhancerByCGLIB$$d2e7fa8d.getPendingNotificationCredEmployee(<generated>)
23:30:00,314 ERROR [stderr] (pool-10-thread-1) at com.asc.service.ExpirationNotificationService.sendAlertToAdmin(ExpirationNotificationService.java:47)
23:30:00,315 ERROR [stderr] (pool-10-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
23:30:00,316 ERROR [stderr] (pool-10-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
23:30:00,316 ERROR [stderr] (pool-10-thread-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
23:30:00,317 ERROR [stderr] (pool-10-thread-1) at java.lang.reflect.Method.invoke(Method.java:616)
23:30:00,317 ERROR [stderr] (pool-10-thread-1) at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273)
23:30:00,318 ERROR [stderr] (pool-10-thread-1) at org.springframework.scheduling.support.MethodInvokingRunnable.run(MethodInvokingRunnable.java:65)
23:30:00,318 ERROR [stderr] (pool-10-thread-1) at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:51)
23:30:00,319 ERROR [stderr] (pool-10-thread-1) at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
23:30:00,320 ERROR [stderr] (pool-10-thread-1) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
23:30:00,320 ERROR [stderr] (pool-10-thread-1) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
23:30:00,321 ERROR [stderr] (pool-10-thread-1) at java.util.concurrent.FutureTask.run(FutureTask.java:166)
23:30:00,321 ERROR [stderr] (pool-10-thread-1) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165)
23:30:00,322 ERROR [stderr] (pool-10-thread-1) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)
23:30:00,323 ERROR [stderr] (pool-10-thread-1) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
23:30:00,323 ERROR [stderr] (pool-10-thread-1) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
23:30:00,324 ERROR [stderr] (pool-10-thread-1) at java.lang.Thread.run(Thread.java:679)
23:30:00,325 ERROR [stderr] (pool-10-thread-1) Caused by: org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [ASC_ID] during auto-discovery of a native-sql query
23:30:00,326 ERROR [stderr] (pool-10-thread-1) at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:594)
OriginalL'auteur Avinash | 2014-01-25
Vous devez vous connecter pour publier un commentaire.
CREDENTIAL_USER { ASC_ID, nom, ÉLÉMENT}, CREDENTIAL_USER { le MOIS, l'ANNÉE, ASC_ID}
les deux contiennent ASC_ID donc ASC_ID devient ambigu dans la requête select.
Sélectionnez votre colonne de données sage et attribuer un alias pour chaque colonne
OriginalL'auteur Ashish Mohan
Lors de l'utilisation de coalescer pour la première fois, j'ai aussi rencontré ce problème. J'ai résolu cela en écrivant:
dans ma requête. L'ajout de seulement fusionnent(nom_colonne, 'default_value'), crée plusieurs valeurs avec le nom
coalesce
et cette erreur atteint son apogée. espérons que cela aide pour quelqu'un comme moi.OriginalL'auteur Khasan 24-7