Anotación para unir columnas con condición OR en lugar de condición AND
Tengo 2 clases de java,Relation
yPerson
, que están presentes en mi base de datos.
Persona:
@Entity
@Table(name = "persons")
public class Person {
@Id
@Column
private int id;
@Column
private String name;
@OneToMany(fetch = FetchType.EAGER)
@JoinColumns({
@JoinColumn(name = "slave_id", referencedColumnName="id"),
@JoinColumn(name = "master_id", referencedColumnName="id")
})
private List<Relation> relations;
//Getters and setters
}
Relación:
@Entity
@Table(name = "relations")
public class Relation {
@Id
@Column
private int id;
@Column
private int child_id;
@Column
private int parent_id;
@Column
private String type;
//Getters and setters
}
Cada persona tiene una lista de relaciones (o no), la relación debe agregarse a la lista cuando child_id o parent_id de la relación es igual al id de la persona.
TL; DR: cuandorelation.child_id OR relation.parent_id = person.id
=> agregar relación a la lista de relaciones a la persona
El problema que estoy enfrentando es que esta anotación:
@JoinColumns({
@JoinColumn(name = "child_id", referencedColumnName="id"),
@JoinColumn(name = "parent_id", referencedColumnName="id")
})
crea el siguiente SQL (solo la parte necesaria):
relations relations6_
on this_.id=relations6_.slave_id
and this_.id=relations6_.master_id
¿Cuál es la anotación correcta en Java Hibernate para generar una instrucción SQL que digaO en lugar deY