Migration hibernate 5 -> 6 @OneToMany with outer join not correct

Hello,

A collection load request with link table named setof is malformed because it is in outer join but in the where is added a non outer join clause "where s2_0.ROLE=‘com.efluid.hibernate.test.businessobject .ChildObjectHibernateSingleTable’‘’.

I have the impression that he wants to couple it with another collection setOfBackRefTo which uses him a return variable mappedBy which is of the same type “ObjetHibernate”…

It is a test object that allows me to test all cases.
But what also bothers me is that it was working before I migrated hibernate to 6.1.5.

An error on our side?

Thanking you.

@Entity
public class ObjetHibernate extends HermesBusinessObject {
  @OneToMany(fetch = EAGER)
  @JoinTable(
      name = "OBJETHIBERNATE_SETOF",
      joinColumns = @JoinColumn(name = "SOURCE"),
      inverseJoinColumns = @JoinColumn(name = "DEST")
  )
  @FilterJoinTable(name = CONFIDENTIALITE, condition = CONFIDENTIALITE_FILTRE)
  private Set<ObjetHibernate> setof = new HashSet<>();

  @OneToMany(mappedBy = "backRefSetOf", fetch = EAGER, cascade = CascadeType.ALL)
  private Set<ObjetFilsHibernateSingleTable> setOfBackRefTo = new HashSet<>();
}
@Entity
@DiscriminatorValue("com.efluid.hibernate.test.businessobject.ObjetFilsHibernateSingleTable")
public class ObjetFilsHibernateSingleTable extends ObjetHibernateSingleTable {

  @ManyToOne
  @Filter(name = CONFIDENTIALITE, condition = CONFIDENTIALITE_FILTRE)
  private ObjetHibernate backRefSetOf;
}
    select
        s1_0.SOURCE,
        s1_1.ID,      
        s1_1.REFTO_ID,
...
        s2_0.BACKREFSETOF_ID,
        s2_0.ID,        
        s2_0.NOM,
...
        s1_1.STRING,
        s1_1.VOLTAGE_UNIT,
        s1_1.VOLTAGE_VALUE,
        s1_1.VOLUME_UNIT,
        s1_1.VOLUME_VALUE 
    from
        OBJETHIBERNATE_SETOF s1_0 
    join
        TOBJETHIBERNATE s1_1 
            on s1_1.ID=s1_0.DEST 
    left join
        TOBJETHIBERNATESINGLETABLE s2_0 
            on s1_1.ID=s2_0.BACKREFSETOF_ID 
    where
 // Here the probleme for me, the join s2_0 is in left outer join
  s2_0.ROLE='com.efluid.hibernate.test.businessobject.ObjetFilsHibernateSingleTable'
        and s1_0.SOURCE=? 
        and (
            s1_0.CODEGRD = ? 
            or s1_0.CODEFOURNISSEUR = ?
        )

This was already reported. See here: [HHH-15829] - Hibernate JIRA

@beikov I have the same problem with a @Where clause

Are you aware of this?

@Entity
@Where("mod(etatobjet,2)=0")
public class ModeleTimeline {
}


Select
       m1_0.WORKFLOW_ID
from TMODELETIMELINE m1_0
         left join TMODELETIME m2_0 on m1_0.ID = m2_0.MODELETIMELINE_ID
         left join TCONDITIONPROCHAINMODELETIME c1_0 on m2_0.ID = c1_0.MODELETIME_ID
         left join (MODELETIME_ETAPESDECLENCHEMENT e1_0 join TETAPEWORKFLOW e1_1 on e1_1.ID = e1_0.DEST) on m2_0.ID = e1_0.SOURCE
         left join TMODELEJALON m3_0 on m2_0.ID = m3_0.MODELETIME_ID
         left join TMODELEDATEJALON m4_0 on m3_0.ID = m4_0.MODELEJALON_ID
where (mod(c1_0.etatobjet, 2) = 0)
  and (mod(m4_0.etatobjet, 2) = 0)
  and (mod(m3_0.etatobjet, 2) = 0)
  and m1_0.ID = '872000'
  and (mod(m1_0.etatobjet, 2) = 0);

I believe that the @Where issue was already fixed but not yet release. Would be great if you could try out the snapshot releases to verify it works.