Ich versuche, alle Zeilen abzurufen, wo emailAccess gleichVerursacht durch: java.sql.SQLException: Subquery liefert mehr als 1 Zeile auf alle Zeilen, in denen emailAccess thesame ist
Benutzertabelle [email protected] ist auf diese Weise strukturiert
id | name | email | emailAccess
1 | john |[email protected] | [email protected]
2 | jeff |[email protected] | [email protected]
ich eine Log-Tabelle wie diese
habenid | userId | message
1 | 1 | bla bla
2 | 2 | 1234
jetzt ich die folgende HQL Abfrage bin mit dem Protokoll abgerufen werden auf der Basis der Benutzer-ID, wo emailAccesss von sesssion ist [email protected]
String hql = "FROM Chat c WHERE c.user = (FROM User u WHERE u.emailAccess = :emailAccess)";
return _sessionFactory.getCurrentSession().createQuery(hql).setParameter("emailAccess", emailAccess).list();
versucht, die oben HQL-Abfrage zu verwenden, gibt mir diesen Fehler
Caused by: org.hibernate.exception.DataException: could not extract ResultSet
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:135)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
zweite stacktrace
Caused by: java.sql.SQLException: Subquery returns more than 1 row
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
Wo bin ich versagt. Bitte helfen!
das Display ist nicht sortiert nach zu den Zeilen –
'FROM Chat c WHERE c.user.emailAccess =: E-MailAccess Auftrag von c.id' –