2015-03-19 1 views
0

Я недавно наткнулся на проблему, когда мне нужно построить критерии JPA с таким же предикатом, который принимает нестандартный тип, который является реализацией UserType. Таможенный тип, с которым я имею дело, - это не что иное, как String, обернутый дополнительной информацией.Пользовательский как предикат для обработки пользовательских определенных типов (Hibernate UserType)

Я сделал это для критериев Hibernate с внедрением интерфейса Criterion из Hibernate, и он отлично работает.

я должен сделать то же самое сейчас для JPA, но реализация зимует в Predicate, то LikePredicate, который создается при вызове:

CriteriaBuilderImpl.like (Expression < String>, String)

кажется довольно сложным.

Что мне нужно что-то вроде:

... как (Expression < MyUserType>, MyUserType)

ли какой-либо один сделать такое же и может предложить мне несколько советов?

Спасибо!

ответ

2

Проблема была решена с помощью вспомогательного метода, где CustomString обычай UserType:

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

 Смежные вопросы

  • Нет связанных вопросов^_^