У меня есть 2 таблицы:
Первая имеет идентификатор, столбец1, столбец2, столбец3.У второго есть id, column1, column2, column4.
Соответствующая сущность для первого:
@Entity
public class FirstEntity {
@Id
private Integer id;
@OneToMany
@JoinColumns({
@JoinColumn(name = "column1", referencedColumnName = "column1"),
@JoinColumn(name = "column2", referencedColumnName = "column2")
})
private List<SecondEntity> secondEntity;
}
Таким образом, соединение работает нормально с одним исключением: column2 может быть нулевым в обеих таблицах.И в этом случае строки с одинаковыми значениями column1, где column2 равно нулю, также должны быть объединены.
С помощью SQL я могу добиться этого, обновив условие соединения до
table1.column1 = table2.column1 and (coalesce(table1.column2, '') = coalesce(table2.column2, '')).
Что можно сделатьс Jpa (или Hibernate в частности), чтобы получить поле secondEntity для нулевого столбца?