Anotação para associar colunas à condição OR em vez da condição AND
Eu tenho 2 aulas de java,Relation
ePerson
, os quais estão presentes no meu banco de dados.
Pessoa:
@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
}
Relação:
@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 pessoa tem uma lista de relações (ou não), a relação deve ser adicionada à lista quando o child_id ou parent_id da relação for igual ao ID da pessoa.
TL; DR: quandorelation.child_id OR relation.parent_id = person.id
=> adicionar relação à lista de relações com a pessoa
O problema que estou enfrentando é que esta anotação:
@JoinColumns({
@JoinColumn(name = "child_id", referencedColumnName="id"),
@JoinColumn(name = "parent_id", referencedColumnName="id")
})
cria o seguinte SQL (apenas a parte necessária):
relations relations6_
on this_.id=relations6_.slave_id
and this_.id=relations6_.master_id
Qual é a anotação correta no Java Hibernate para gerar uma instrução SQL dizendoOU ao invés deE