JPA @JoinColumns все еще должен объединять строки, когда один столбец нулевой - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть 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 для нулевого столбца?

...