微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Lob Coulmn在“标准”构建器的“ JPA规范”中使用

如何解决Lob Coulmn在“标准”构建器的“ JPA规范”中使用

    @Lob
    @Column(name = "message")
    private String message;

实体中的属性,即Postgres数据库中的blob数据类型,它存储为表中的bigint(字节位置,我想是在db中)。

我已经为实体编写了JPA规范,其所有属性均正常工作。

if (!StringUtils.isEmpty(criteria.getMessage())) {
            predicateList.add(cb.like(root.get("message"),"%" + criteria.getMessage() + "%"));
            isFilterEmpty = false;
   }

以上代码是表中message属性的规范说明,因为bigint存储在表中,规范查询不会将bigint转换为text(lo_get posgres方法转换为原始文本值),它会使用bigint值本身与like进行比较,因此会引发错误

Caused by: org.postgresql.util.PsqlException: ERROR: operator does not exist: text ~~ bigint
  Hint: No operator matches the given name and argument types. You might need to add explicit type casts.

如何解决此问题?暂时我没有在规范中添加此过滤器,在获取数据后,我暗示着要根据消息进行过滤

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。