Аннотация для объединения столбцов с условием ИЛИ вместо условия И
У меня есть 2 занятия по Java,Relation
а такжеPerson
, которые оба присутствуют в моей базе данных.
Человек:
@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
}
Связь:
@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
}
У каждого Person есть список отношений (или нет), отношение должно быть добавлено в список, когда child_id или parent_id отношения равен id человека.
TL; DR: когдаrelation.child_id OR relation.parent_id = person.id
=> добавить отношение к списку отношений человеку
Проблема, с которой я сталкиваюсь, заключается в том, что эта аннотация:
@JoinColumns({
@JoinColumn(name = "child_id", referencedColumnName="id"),
@JoinColumn(name = "parent_id", referencedColumnName="id")
})
создает следующий SQL (только необходимую часть):
relations relations6_
on this_.id=relations6_.slave_id
and this_.id=relations6_.master_id
Какова правильная аннотация в Java Hibernate для генерации оператора SQL, говорящегоИЛИ ЖЕ вместоА ТАКЖЕ