我最近偶然发现了一个问题,我必须使用类似谓词构建一个 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/