JPQL: Left Join On with two reference don't work

Description

Sorry, my issue was closed and redirect me to forum but it is a real BIG PROBLEM: (I try write this query with EclipseLink and it is works!!!!!!!!!!)

java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: with-clause referenced two different from-clause elements [SELECT v
FROM com.imc.lpu.core.entity.Visit v
LEFT JOIN v.idSluchMed s
LEFT JOIN s.idInsured i
LEFT JOIN i.histInvalidList h
ON h.begdate < v.visitDate]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1750)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1683)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:331)
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: with-clause referenced two different from-clause elements [SELECT v
FROM com.imc.lpu.core.entity.Visit v
LEFT JOIN v.idSluchMed s
LEFT JOIN s.idInsured i
LEFT JOIN i.histInvalidList h
ON h.begdate < v.visitDate]
at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:91)
at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:109)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:284)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:126)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:88)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:190)
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1796)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:328)
... 2 more

There some entities and HQL query:

@Entity
public class Visit implements Serializable{
@Id
private Integer id;

@JoinColumn(name = "ID_SLUCH_MED", referencedColumnName = "ID", nullable = false)
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Sluch idSluchMed;

@Temporal(TemporalType.TIMESTAMP)
private Date visitDate;
}

@Entity
public class Sluch implements Serializable {

@Id
private Integer id;

@JoinColumn(name = "ID_INSURED", referencedColumnName = "ID", nullable = false)
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Insured idInsured;

@OneToMany(cascade = CascadeType.ALL, mappedBy = "idSluchMed", fetch = FetchType.LAZY)
private List<Visit> visitList;
}

@Entity
public class Insured implements Serializable {

@Id
private Integer id;

@OneToMany(cascade = CascadeType.ALL, mappedBy = "idInsured", fetch = FetchType.LAZY)
private List<Sluch> sluchList;

@OneToMany(cascade = CascadeType.ALL, mappedBy = "idInsured", fetch = FetchType.LAZY)
private List<HistInvalid> histInvalidList;
}

@Entity
public class HistInvalid implements Serializable {
@Id
private Integer id;

@Column(name = "BEGDATE")
@Temporal(TemporalType.TIMESTAMP)
private Date begdate;

@Column(name = "ENDDATE")
@Temporal(TemporalType.TIMESTAMP)
private Date enddate;

@JoinColumn(name = "ID_INSURED", referencedColumnName = "ID", nullable = false)
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Insured idInsured;
}

SELECT v
FROM Visit v
LEFT JOIN v.idSluchMed s
LEFT JOIN s.idInsured i
LEFT JOIN i.histInvalidList h
ON h.begdate < v.visitDate

And I have the above exception!!!!

Activity

Show:

Brett Meyer January 18, 2014 at 4:48 AM

This duplicates – I should have checked that before rejecting your previous one. But please stop re-opening these. Let's focus the discussion on

Duplicate

Details

Assignee

Reporter

Labels

Components

Affects versions

Priority

Created January 17, 2014 at 8:24 AM
Updated January 18, 2014 at 4:48 AM
Resolved January 18, 2014 at 4:47 AM