Ошибка при поиске данных в классе сопоставленных сущностей. Entity: Unexpected BindableType; ожидается [ENTITY_TYPE]; вместо этого получил [PLURAL_ATTRIBUTE] - PullRequest
0 голосов
/ 05 марта 2020
@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, это работает нормально.

...