Метод обработки критериев не работает после перехода на Hibernate 5.1

У меня есть запрос критериев JPA, который отлично работает под Wildfly 10, который использует Hibernate 5.0.10. После обновления до Wildfly 12, использующего Hibernate 5.1.10, я получил эту ошибку:

Caused by: java.lang.UnsupportedOperationException
    at java.util.AbstractCollection.add(AbstractCollection.java:262)
    at org.hibernate.jpa.criteria.CriteriaBuilderImpl.treat(CriteriaBuilderImpl.java:1106)

Код критерия:

criteria.where(builder.isNull(
    builder.treat(customer, CustomerPF.class).get(CustomerPF_.employer)))

И сущности являются:

Я думаю, что проблема в treat метод. Согласно исключению, этот метод из Hibernate выдает ошибку.

public <X, T, V extends T> Join<X, V> treat(Join<X, T> join, Class<V> type) {
    final Set<Join<X, ?>> joins = join.getParent().getJoins();
    final Join<X, V> treatAs = ( (JoinImplementor) join ).treatAs( type );
    **joins.add**( treatAs );
    return treatAs;
}

Что-то я делаю не так?

0 ответов

Другие вопросы по тегам