JPA加入具有空值的列的问题

时间:2018-02-23 02:13:31

标签: spring jpa spring-data-jpa

我正在尝试建立两个表MasterGroups之间的一对一关系,下面是使用Groups定义的关联。

Class: Master

我正在使用Groups表连接3列,其中一列可以为null,当JPA生成查询时,对于null值字段,check检查无效,因为它检查=运算符而不是is null检查。

SUBGRPnull检查SUBGRP = nullnull次检查无效<{1}}时,会发生什么?

当值null检查它应该使用SUBGRP时,我期待的是NULL。因为当我使用SUBGRP =null查询sql时,它不会返回任何数据,但当我将其更改为SUBGRP时,null我会获得数据。

JPA GENERATED QUERY: (added here only where condition)

where grpNm=? and subgrp=? and pkg=? 
org.hibernate.type.descriptor.sql.BasicBinder.bind:65 - binding parameter [1] as [VARCHAR] - [111111]
org.hibernate.type.descriptor.sql.BasicBinder.bind:53 - binding parameter [2] as [VARCHAR] - [null]
org.hibernate.type.descriptor.sql.BasicBinder.bind:65 - binding parameter [3] as [VARCHAR] - [888]


@OneToOne(cascade = {CascadeType.ALL},fetch = FetchType.LAZY)
@Fetch(FetchMode.JOIN)
@JoinColumns({
@JoinColumn(name = "GRPNM", referencedColumnName = "GRPNM", updatable=false, insertable=false),
@JoinColumn(name = "SUBGRP", referencedColumnName = "SUBGRP", updatable=false, insertable=false, nullable = true),
@JoinColumn(name = "PKG", referencedColumnName = "PKG", updatable=false, insertable=false)
})
protected Group group;

任何人都可以建议我在其中一个加入列为null并且应该is null而不是= null检查时如何解决此问题?

0 个答案:

没有答案