Не могу понять как сделать сравнение в hibernate cruteria. Есть такой метод
@Override
public List
Он должен вернуть список объектов. Но ворачивает ошибку. ругается на criteria.add(Restrictions.eq("call.callingnum", incommingSMS.getSourceAddress()));
В классе PollEvent есть поле call вот оно
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "CALL_ID", nullable = false)
private Calls call;
а у него есть поле callingnum по которому яи хочу сравнить
@Column(name = "CALLINGNUM", length = 15)
private String callingnum;
Ошибка которую я получаю
could not resolve property: call.callingnum of: polls.entety.PollEvent
Ответ
В этом случае необходимо создать либо вложенный criteria
Criteria criteria = getSession().createCriteria(PollEvent.class);
criteria.add(Restrictions.eq("status", 0));
criteria.createCriteria("call")
.add(Restrictions.eq("callingnum", incommingSMS.getSourceAddress()));
либо использовать alias
Criteria criteria = getSession().createCriteria(PollEvent.class);
criteria.add(Restrictions.eq("status", 0));
criteria.createAlias("call", "c");
criteria.add(Restrictions.eq("c.callingnum", incommingSMS.getSourceAddress()));
Документация
Комментариев нет:
Отправить комментарий