Herr_M
Erfahrenes Mitglied
Hi ich habe versucht ein Query mit JPAQL zu schreiben, dass wie folgt aussieht:
Führe ich das ganze aus, wird folgende Exception geworfen: java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: kritgruppennr
Ich verstehe, dass an dieser Stelle nicht was mir das sagen will?
Die kritgruppennr ist ja da?
StackTrace:
Hier noch der Code zu den beteiligten Bean Klassen:
KriterienBean
KritGruppenBean
FormKriterienBean
Code:
public List<KriterienCombinationValueObject> selectFormkriterien(int foidx)
throws Exception {
try {
System.out.println("AccessSessionBean - selectFormkriterien(int foidx)");
String queryString =
" SELECT "
+ " k.kritgruppennr, "
+ " kg.kritgruppenbez, "
+ " k.krname, "
+ " fk.text, "
+ " fk.foidx, "
+ " fk.krnr, "
+ " fk.fknr "
+ " FROM "
+ " FormKriterienBean fk, "
+ " KriterienBean k,"
+ " KritGruppenBean kg "
+ " WHERE fk.foidx = ?1 "
+ " AND k.krnr = fk.krnr "
+ " AND k.kritgruppennr = kg.kritgruppennr ";
List<KriterienCombinationValueObject> listeFormKriterien =
new ArrayList<KriterienCombinationValueObject>();
Query query = manager.createQuery(queryString);//Hier fliegt die Exception
query.setParameter(1, foidx);//Das hier wird garnicht mehr ausgeführt.
... // Hier dann Code der ausgeführt werden soll (würde die Exception nicht geworfen)
}
Führe ich das ganze aus, wird folgende Exception geworfen: java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: kritgruppennr
Ich verstehe, dass an dieser Stelle nicht was mir das sagen will?
Die kritgruppennr ist ja da?
StackTrace:
Code:
10:58:08,168 ERROR [STDERR] java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: kritgruppennr of: com.de.anycompany.fmdb.ejb.KriterienBean [ SELECT k.kritgruppennr, kg.kritgruppenbez, k.krname, fk.text, fk.foidx, fk.krnr, fk.fknr FROM com.de.anycompany.fmdb.ejb.FormKriterienBean fk, com.de.anycompany.fmdb.ejb.KriterienBean k, com.de.anycompany.fmdb.ejb.KritGruppenBean kg WHERE fk.foidx = ?1 AND k.krnr = fk.krnr AND k.kritgruppennr = kg.kritgruppennr ]
10:58:08,183 ERROR [STDERR] at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:616)
10:58:08,183 ERROR [STDERR] at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:95)
10:58:08,183 ERROR [STDERR] at org.jboss.ejb3.entity.TransactionScopedEntityManager.createQuery(TransactionScopedEntityManager.java:134)
10:58:08,183 ERROR [STDERR] at com.de.anycompany.fmdb.ejb.AccessSessionBean.selectFormkriterien(AccessSessionBean.java:1487)
10:58:08,183 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
10:58:08,183 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
10:58:08,183 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
10:58:08,199 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
10:58:08,199 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
10:58:08,199 ERROR [STDERR] at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
10:58:08,199 ERROR [STDERR] at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
10:58:08,199 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
10:58:08,199 ERROR [STDERR] at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
10:58:08,199 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
10:58:08,214 ERROR [STDERR] at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
10:58:08,214 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
10:58:08,214 ERROR [STDERR] at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
10:58:08,214 ERROR [STDERR] at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
10:58:08,214 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
10:58:08,214 ERROR [STDERR] at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
10:58:08,214 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
10:58:08,214 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
10:58:08,214 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
10:58:08,214 ERROR [STDERR] at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
10:58:08,230 ERROR [STDERR] at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)
10:58:08,230 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
10:58:08,230 ERROR [STDERR] at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
10:58:08,230 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
10:58:08,230 ERROR [STDERR] at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
10:58:08,230 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
10:58:08,230 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:304)
10:58:08,230 ERROR [STDERR] at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
10:58:08,246 ERROR [STDERR] at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
10:58:08,246 ERROR [STDERR] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:769)
10:58:08,246 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:573)
10:58:08,246 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:373)
10:58:08,246 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:166)
10:58:08,261 ERROR [STDERR] Caused by: org.hibernate.QueryException: could not resolve property: kritgruppennr of: com.de.anycompany.fmdb.ejb.KriterienBean [ SELECT k.kritgruppennr, kg.kritgruppenbez, k.krname, fk.text, fk.foidx, fk.krnr, fk.fknr FROM com.de.anycompany.fmdb.ejb.FormKriterienBean fk, com.de.anycompany.fmdb.ejb.KriterienBean k, com.de.anycompany.fmdb.ejb.KritGruppenBean kg WHERE fk.foidx = ?1 AND k.krnr = fk.krnr AND k.kritgruppennr = kg.kritgruppennr ]
10:58:08,261 ERROR [STDERR] at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:44)
10:58:08,261 ERROR [STDERR] at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:38)
10:58:08,277 ERROR [STDERR] at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1358)
10:58:08,277 ERROR [STDERR] at org.hibernate.hql.ast.tree.FromElementType.getPropertyType(FromElementType.java:279)
10:58:08,277 ERROR [STDERR] at org.hibernate.hql.ast.tree.FromElement.getPropertyType(FromElement.java:386)
10:58:08,277 ERROR [STDERR] at org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:566)
10:58:08,277 ERROR [STDERR] at org.hibernate.hql.ast.tree.DotNode.prepareLhs(DotNode.java:241)
10:58:08,277 ERROR [STDERR] at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:188)
10:58:08,277 ERROR [STDERR] at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94)
10:58:08,277 ERROR [STDERR] at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90)
10:58:08,277 ERROR [STDERR] at org.hibernate.hql.ast.tree.DotNode.resolveSelectExpression(DotNode.java:629)
10:58:08,293 ERROR [STDERR] at org.hibernate.hql.ast.HqlSqlWalker.resolveSelectExpression(HqlSqlWalker.java:739)
10:58:08,293 ERROR [STDERR] at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExpr(HqlSqlBaseWalker.java:1885)
10:58:08,293 ERROR [STDERR] at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExprList(HqlSqlBaseWalker.java:1825)
10:58:08,293 ERROR [STDERR] at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectClause(HqlSqlBaseWalker.java:1394)
10:58:08,293 ERROR [STDERR] at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:553)
10:58:08,293 ERROR [STDERR] at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
10:58:08,293 ERROR [STDERR] at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
10:58:08,293 ERROR [STDERR] at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
10:58:08,308 ERROR [STDERR] at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
10:58:08,308 ERROR [STDERR] at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
10:58:08,324 ERROR [STDERR] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
10:58:08,324 ERROR [STDERR] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
10:58:08,324 ERROR [STDERR] at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
10:58:08,324 ERROR [STDERR] at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
10:58:08,324 ERROR [STDERR] at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
10:58:08,324 ERROR [STDERR] at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
10:58:08,324 ERROR [STDERR] at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:92)
10:58:08,324 ERROR [STDERR] ... 35 more
Hier noch der Code zu den beteiligten Bean Klassen:
KriterienBean
Code:
package com.de.anycompany.fmdb.ejb;
import javax.persistence.*;
@Entity
@Table(name = "KRITERIEN")
@SequenceGenerator(name="KRNR_SEQUENCE", sequenceName="SEQ_KRITERIEN_KRNR")
public class KriterienBean implements java.io.Serializable {
private int krNr;
private int kritGruppenNr;
private String krName;
private Integer krTyp;
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="KRNR_SEQUENCE")
@Column(name="KRNR")
public int getKrNr() {
return krNr;
}
public void setKrNr(int krNr) {
this.krNr = krNr;
}
@Column(name="KRITGRUPPENNR")
public int getKritGruppenNr() {
return kritGruppenNr;
}
public void setKritGruppenNr(int kritGruppenNr) {
this.kritGruppenNr = kritGruppenNr;
}
@Column(name="KRNAME")
public String getKrName() {
return krName;
}
public void setKrName(String krName) {
this.krName = krName;
}
@Column(name="KRTYP")
public Integer getKrTyp() {
return krTyp;
}
public void setKrTyp(Integer krTyp) {
this.krTyp = krTyp;
}
}
KritGruppenBean
Code:
package com.de.anycompany.fmdb.ejb;
import javax.persistence.*;
@Entity
@Table(name = "KRITGRUPPEN")
@SequenceGenerator(name="KRITGRUPPENNR_SEQUENCE", sequenceName="SEQ_KRITGRUPPEN_NR")
public class KritGruppenBean implements java.io.Serializable {
private int kritGruppenNr = 0;
private String kritGruppenBez = "";
@Column(name="KRITGRUPPENNR")
public String getKritGruppenBez() {
return kritGruppenBez;
}
public void setKritGruppenBez(String kritGruppenBez) {
this.kritGruppenBez = kritGruppenBez;
}
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="KRITGRUPPENNR_SEQUENCE")
@Column(name="KRITGRUPPENBEZ")
public int getKritGruppenNr() {
return kritGruppenNr;
}
public void setKritGruppenNr(int kritGruppenNr) {
this.kritGruppenNr = kritGruppenNr;
}
}
FormKriterienBean
Code:
package com.de.anycompany.fmdb.ejb;
import javax.persistence.*;
@Entity
@IdClass(FormKriterienPK.class)
@Table(name="FORMKRITERIEN")
@SqlResultSetMapping(name="formkriterienUndKriterienUndKriterienGruppen",
entities={@EntityResult(entityClass=FormKriterienBean.class),
@EntityResult(entityClass=KriterienBean.class,
fields={@FieldResult(name="krNr", column="kkrnr"),
@FieldResult(name="kritGruppenNr", column="kritgruppennr"),
@FieldResult(name="krName", column="krname"),
@FieldResult(name="krTyp", column="kkrtyp")})
})
@SequenceGenerator(name="KRITGRUPPENNR_SEQUENCE", sequenceName="SEQ_FORMKRITERIEN_FOIDX")
public class FormKriterienBean implements java.io.Serializable {
private int foIdx;
private int fkNr;
private String text = "";
private Integer krNr = Integer.valueOf(0);
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="KRITGRUPPENNR_SEQUENCE")
@Column(name="FKNR")
public int getFkNr() {
return fkNr;
}
public void setFkNr(int fkNr) {
this.fkNr = fkNr;
}
@Id
@Column(name="FOIDX")
public int getFoIdx() {
return foIdx;
}
public void setFoIdx(int foIdx) {
this.foIdx = foIdx;
}
@Column(name="TEXT")
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
@Column(name="KRNR")
public Integer getKrNr() {
return krNr;
}
public void setKrNr(Integer krNr) {
this.krNr = krNr;
}
}
Zuletzt bearbeitet: