@MappedSuperclass
public class Animal {
private List<String> propertyList;
}
@Entity
public class Elephant extends Animal {
}
@Entity
public class Zoo {
private int zooId;
private Set<Elephant> setOfElephant;
}
public Expression buildExpression(CriteriaBuilder cb) {
CriteriaQuery<Zoo> cq = cb.createQuery(Zoo.class);
Root<Zoo> root = cq.from(Zoo.class);
SetJoin<Zoo, Elephant> join = root.join("setOfElephant");
// Getting error in below line
Expression attribute = join.get("propertyList");
return attribute;
}
Я хочу получить zooId, в котором поле propertyList объекта Elephant содержит значение «ab c». Итак, я создал SetJoint между Zoo и Elephant Class.
Но когда я пытаюсь получить атрибут из SetJoint, он выдаст ошибку, как показано ниже.
org.hibernate.AssertionFailure: Unexpected BindableType; ожидается [ENTITY_TYPE]; вместо этого получил [PLURAL_ATTRIBUTE]
Когда я удаляю поле propertyList из класса Animal и помещаю его в класс Elephant, это работает нормально.