1

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

ThomasMuller
  • 279
  • 1
  • 3
  • 12

0 Answers0