Due to a Migration from Hibernate to OpenJPA, I have to modify the following Multi left join fetch Statement:
SELECT distinct aaa
FROM ClassA aaa
left join fetch aaa.classBs bbb
left join fetch bbb.classC ccc
where aaa.id = ?1
OpenJPA throws this exception:
<openjpa-2.4.0-r422266:1674604 nonfatal user error>
org.apache.openjpa.persistence.ArgumentException: "Encountered "bbb" at character 85, but expected: [",", ".", "GROUP", "HAVING", "INNER", "JOIN", "LEFT", "ORDER", "WHERE", <EOF>]." while parsing JPQL "SELECT distinct aaa FROM ClassA aaa left join fetch aaa.classBs bbb left join fetch bbb.classC ccc where aaa.id = ?1".
ClassA:
@Entity
@Table(name = "TABLE_A")
public class ClassA {
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "classA")
private Set<ClassB> classBs;
}
ClassB:
@Entity
@Table(name = "TABLE_B")
public class ClassB {
@ManyToOne
@JoinColumn(name = "CLASSC_ID")
private ClassC classC;
@ManyToOne
@JoinColumn(name = "CLASSA_ID")
private ClassA classA;
}
ClassC:
@Entity
@Table(name = "CLASS_C")
public class ClassC {
@Column(name = "NAME")
private String name;
}
It seems that the second left join fetch causes the Problem.
Any suggestions would be much appreciated. Thanks in advance, Thomas