当一列为空时,JPA @JoinColumns仍应联接行

时间:2018-09-28 14:02:47

标签: java database hibernate jpa join

我有2张桌子:

第一个具有id,column1,column2,column3。 第二个具有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都可以为null。在那种情况下,具有相同column1值(column2为null)的行也应加入。

使用SQL,我将连接条件更新为

,从而成功实现了这一目标
table1.column1 = table2.column1 and (coalesce(table1.column2, '') = coalesce(table2.column2, '')).

为了获得null列的secondEntity字段集,可以使用Jpa(特别是Hibernate)做什么?

0 个答案:

没有答案