Метод обработки критериев не работает после перехода на 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;
}
Что-то я делаю не так?