hibernate 查询Page 只要有一个字段为null 查出来的整条数据都为null

本文解决了因@IdClass注解不当使用导致的查询错误。在使用Spring Data JPA时,由于实体类PrpdExch的@IdClass注解引用自身而非正确的复合键类,导致含有null值字段的查询失败。通过更正@IdClass为PrpdExchKey.class,问题得以解决。
1
2
Pageable pageable = this.getPageable(queryDto);
Page<PrpdExch> page2 = prpdExchDao.findAll(pageable);

通过postman查询结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
  "resultCode""0000",
  "resultMsg""成功",
  "transactionID""",
  "resultObj": {
    "content": [
      null,
      null,
      null,
      null,
      null
    ],
    "totalCount"21,
    "pages"5
  }
}

最后定位到:

在类上的@IdClass注解引用的是本身,也就是说又把自己所有字段当成了主键,所以里面有字段为null就导致报错。

以前:

1
2
3
4
5
6
@Entity
@Table(name = "prpdExch")
@IdClass(PrpdExch.class)
public class PrpdExch implements BaseEntity, Serializable {
...
}

更改后

1
2
3
4
5
6
@Entity
@Table(name = "prpdExch")
@IdClass(PrpdExchKey.class)
public class PrpdExch implements BaseEntity, Serializable {
...
}

马虎出错的....

参考地址:

http://blog.youkuaiyun.com/zw0283/article/details/46009187


本文转自gaofeng36599 51CTO博客,原文链接:http://blog.51cto.com/786678398/1957138

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值