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 = ?
)