2016-04-27 5 views
0


In meinem Projekt verwende ich JPA 1.0 mit Hibernate 3.2.x und Tomcat für die Bereitstellung.Wie lösen Crazy JPA-Anforderungen?

In meinem Projekt habe ich die folgende Abfrage verwendet haben, als benannte Abfrage auszuführen,

SELECT smSSTJob.smJob.jobId, smSSTJob.smJob.jobTypeId, smSSTJob.omObject.objectId, 
smSSTJob.omObject.objectName FROM SMSSTJob smSSTJob 
WHERE smSSTJob.smJob.jobTypeId IN (:jobTypeIdList) 
AND smSSTJob.jobStatusId IN (:jobStatusList) 
AND smSSTJob.omObject.objectId NOT IN (SELECT sm.omObject.objectId FROM SMSSTJob sm 
WHERE sm.jobStatusId IN (:unProcessedJobStatusList) 
AND sm.responseReceivedDate > :responseReceivedDate) 
AND smSSTJob.priority = :priority 
AND smSSTJob.jobRetries < :maximumJobRetries ORDER BY smSSTJob.smJob.jobId 

Während ich thorws folgender Ausnahme mein Projekt Ursache für die obige Abfrage überwintern bereitstellen,

Caused by: java.lang.NullPointerException 
at org.hibernate.hql.ast.tree.FromClause.findIntendedAliasedFromElementBasedOnCrazyJPARequirements(FromClause.java:120) 
at org.hibernate.hql.ast.tree.FromClause.getFromElement(FromClause.java:107) 
at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:81) 
at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:70) 
at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:255) 
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056) 
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945) 
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688) 
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544) 
at org.hibernate.hql.antlr.HqlSqlBaseWalker.collectionFunctionOrSubselect(HqlSqlBaseWalker.java:4253) 
at org.hibernate.hql.antlr.HqlSqlBaseWalker.inRhs(HqlSqlBaseWalker.java:4161) 

Wie lösche ich diese Ausnahme? Bitte helfen Sie mir in diesem Zusammenhang. Vielen Dank im Voraus.

+0

Haben Sie 'smJob' in' smSSTJob.smJob.jobTypeId' und 'OmObject' in' smSSTJob.omObject.objectId 'nicht' null' überprüft? – ujulu

+0

Die beiden 'smJob' und' OmObject' alle ** Fremdschlüssel und nicht null ** Spalten in 'smSSTJob'. –

+0

Hibernate 3.2.6 oder niedriger? – D0dger

Antwort

0

Es gibt eine bug in dem Ruhezustand ist, in 3.2.6 gelöst und später versuchen, Hibernate Version zu aktualisieren

-2

könnte es sein, dass ein ")" fehlt? Um Ihre Unterabfrage zu schließen.

NOT IN (SELECT sm.omObject.objectId VON SMSSTJob sm WHERE sm.jobStatusId IN (: unProcessedJobStatusList)

+0

Kein Fehler in diesem .. NICHT IN (SELECT sm.omObject.objectId VON SMSSTJob sm WHERE sm. jobStatusId IN (: unProcessedJobStatusList) UND sm.responseReceivedDate >: responseReceivedDate) –