处理自定义用户定义类型的自定义类谓词(Hibernate UserType)

处理自定义用户定义类型的自定义类谓词(Hibernate UserType),hibernate,jakarta-ee,jpa-2.0,hibernate-criteria,Hibernate,Jakarta Ee,Jpa 2.0,Hibernate Criteria,我最近偶然发现了一个问题,我必须用like谓词构建一个JPA标准,它接受一个自定义类型,该类型是的一个实现。我正在处理的自定义类型只不过是用一些附加信息包装的String 我已经按照Hibernate标准完成了这项工作,从Hibernate实现了接口,并且工作正常 现在我必须对JPA执行同样的操作,但的Hibernates实现是在调用时创建的: CriteriaBuilderImpl.like(表达式,字符串) 看起来很复杂 我需要的是: …类似(表达式,MyUserType) 有没有人做过这样

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

我已经按照Hibernate标准完成了这项工作,从Hibernate实现了接口,并且工作正常

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

CriteriaBuilderImpl.like(表达式<字符串>,字符串)

看起来很复杂

我需要的是:

…类似(表达式,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());
}
public静态谓词addLike(CriteriaBuilder cb,Path Path,String val)
{
返回cb.like(cb.lower(path.as(String.class)),val.toLowerCase();
}