hibernate - 自定义类似谓词来处理自定义用户定义类型(Hibernate UserType)

标签 hibernate jakarta-ee jpa-2.0 hibernate-criteria

我最近偶然发现了一个问题,我必须使用类似谓词构建一个 JPA 标准,该谓词接受自定义类型,该自定义类型是 UserType 的实现。 。我正在处理的自定义类型只不过是包含一些附加信息的 String

我已经按照 Hibernate 标准实现了 Criterion来自 Hibernate 的接口(interface)并且工作正常。

我现在必须对 JPA 执行相同的操作,但是 Predicate 的 Hibernates 实现,LikePredicate这是在调用时创建的:

CriteriaBuilderImpl.like(Expression< String >, String)

看起来很复杂。

我需要的是这样的:

...like(Expression< MyUserType >, MyUserType)

有人做过这样的事情吗,可以给我一些提示吗?

谢谢!

最佳答案

问题已通过辅助方法解决,其中 CustomString 是自定义 UserType:

public static Predicate addLike(CriteriaBuilder cb, Path<CustomString> path, String val)
{
    return cb.like(cb.lower(path.as(String.class)), val.toLowerCase());
}

关于hibernate - 自定义类似谓词来处理自定义用户定义类型(Hibernate UserType),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29145693/

相关文章:

java - PostgreSQL 中的表锁

java - 按子查询属性过滤条件查询

Java EE 输入/输出流

spring - 收到错误消息,找不到元素 'jpa:repositories' 的声明

java - 对子类使用 JPA 2.0 @Inheritance 注释是否有意义?

java - Grails:使用数据源插件,无法跨不同数据源连接域类

java - 上下文初始化期间遇到异常 - 库不兼容?

java - 避免 for 循环并尝试使用集合 API(性能)

java - 动态网页内置 jsp 到任何高级 java 框架

mysql - Hibernate JPA不支持@TableGenerator的 "initialValue"元素吗?