Ich versuche, die native Abfrage mit JPA 2.0.I auszuführen hat meine Mutter Abfrage in der orm.xml definiertParamertized india Abfrage leer resultset [Parameter als durch Komma getrennte Zeichenfolge] Rückkehr (mit JPA)
Orm.xml
<named-native-query name="getAgencyUsersByRoles">
<query><![CDATA[SELECT DISTINCT a1.USR_LOGIN,c.PERSON_FIRST_NAME,c.PERSON_LAST_NAME,a1.EMAIL, b.auth_role_code FROM USERS a1,PERSON_AUTH_ROLES b,PERSON c WHERE ((b.group_code = 'RCATAG' and a1.person_id=b.person_id and b.person_id=c.person_id AND b.auth_role_code IN (?)) OR (b.group_code = 'RCEMP' and a1.person_id=b.person_id and b.person_id=c.person_id AND b.auth_role_code IN (?))) AND a1.email IS NOT NULL AND a1.status in ('ACTIVE','PASSWORD EXPIRED') ORDER BY a1.usr_login]]></query>
</named-native-query>
Code von wo aus ich die Abfrage mit jpa ausführe.
Query query = getEntityManager()
.createNamedQuery(NotificationPersistenceConstants.GET_AGENCY_USERS_BY_ROLES);
query.setParameter(1, roles);
query.setParameter(2, cccRoles);
// fetch the results
List<Object[]> list = query.getResultList();
Diese Abfrage führt keine Ausnahme während der Ausführung ich meine appplication der JPA-Protokolle überprüft aber gibt mir leer resultset.
Wenn ich die gleiche Abfrage in meinem DB-Server fire bekomme ich die Ergebnismenge, die beweist, dass meine Abfrage keine Probleme hat und auch Tabelle enthält Datensätze für diese Abfrage zurückgeben.
Ich habe versucht, meine native Abfrage zu brechen und sie einfach als separate native Abfragen für alle Tabellen auszuführen, die ich in der Abfrage habe. Unten ist, was ich versuchte mit der DISTINCT-Klausel zu überprüfen, ob DISTINCT Schlüsselwort der Schuldige sein könnte. Aber sie alle arbeiteten gut und gab Ergebnis unter List<Object[]>
SELECT DISTINCT a1.USR_LOGIN FROM USERS a1 ORDER BY a1.usr_login
SELECT DISTINCT b.auth_role_code FROM PERSON_AUTH_ROLES b
SELECT DISTINCT c.PERSON_LAST_NAME FROM PERSON c
aktualisiert die Rollen & cccRoles Abfrage paramters, die ich in der Abfrage bin vorbei.
roles = 'teller','lender','bacth',etc... // This list is dynamically created at runtime
cccRoles = 'cccadmin','ccuser',etc // This list is dynamically created at runtime
Jetzt bin ich mir nicht sicher, was das Problem ist.
Frage? - Sollte nicht so sein, wie ich verifiziert habe, die gleiche Abfrage direkt im DB-Server ausgeführt und gut gearbeitet.
EntityManager (JPA)? - Alle Konfigurationen überprüft und auch einzelne Abfragen ausgeführt und das Ergebnis zurückbekommen.
tritt? ...
Bitte helfen Sie mir, wenn jemand das gleiche Problem aufgetreten 8.5 wurde mit JPA 2.0.
Versuchen Sie, Abfragen zurückzuverfolgen. F .: "alter session set events" 10046 trace name context für immer, level 12 '; ' –