获得例外:
With子句引用了两个不同的from子句元素
使用以下实体执行以下查询时:
@Entity
public class A {
@Id
private Long id;
@Column(name = "A_ID")
private Long aId;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "A_ID")
private B b;
}
@Entity
public class B {
@Id
private Long id;
@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL)
@JoinColumn(name="C_ID" , referencedColumnName="ID")
private List<C> c;
}
@Entity
public class C {
@Id
private Long id;
@Column(name="C_ID")
private Long cId;
@Column
private String addType;
}
Run Code Online (Sandbox Code Playgroud)
我的HQL查询是:
SELECT * FROM A a
INNER JOIN a.b b ON a.aId=b.id
LEFT OUTER JOIN b.c c ON b.id=c.cId AND c.addType='PermanentAddress'
LEFT OUTER JOIN b.c d ON b.id=d.cId AND d.addType='ResidentialAddress'
LEFT OUTER JOIN b.c e ON b.id=e.cId AND e.addType='OfficeAddress'
WHERE a.id =:id
Run Code Online (Sandbox Code Playgroud)
我得到的例外是:
引起:org.hibernate.hql.internal.ast.QuerySyntaxException:with-clause在org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:91)中引用了两个不同的from子句元素〜[hibernate- org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:109)〜[hibernate-core-4.3.6.Final.jar :4.3.6.Final] org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:284)〜[hibernate-core-4.3.6.Final.jar:4.3.6.Final] at org .hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)〜[hibernate-core-4.3.6.Final.jar:4.3.6.Final] org.hibernate.hql.internal.ast. QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158)~ [hibernate-core-4.3.6.Final.jar:4.3.6.最终]在org.hibernate.engine.query的org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:126)~ [hibernate-core-4.3.6.Final.jar:4.3.6.Final] .spi.HQLQueryPlan.(HQLQueryPlan.java:88)〜[hibernate-core-4.3.6.Final.jar:4.3.6.Final] org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java :167)〜[hibernate-core-4.3.6.Final.jar:4.3.6.Final] org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)〜[hibernate-core-4.3.6. Final.jar:4.3.6.Final] at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)〜[hibernate-core-4.3.6.Final.jar:4.3.6.Final] at org. org.hibernate.jpa.spi中的hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1800)〜[hibernate-core-4.3.6.Final.jar:4.3.6.Final].AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:328)〜[hibernate-entitymanager-4.3.6.Final.jar:4.3.6.Final] ...省略了187个常用帧
| 归档时间: |
|
| 查看次数: |
8615 次 |
| 最近记录: |