Составной ключ запроса гибернации - PullRequest
1 голос
/ 28 февраля 2012

Я пытаюсь выполнить запрос составного ключа, используя @ embeddable.

Вот что у меня есть.

@Embeddable
public class IfasvVendorPK implements Serializable{

@Column(length = 4, nullable = false)
protected String peId;
@Column(length = 8, nullable = false)
protected String peAddrCd;

Сущность

@Entity
public class IfasvVendor implements Serializable {

@EmbeddedId
private IfasvVendorPK ifasvVendorPK;

Запрос

Список содержит два pks.Не уверен, должен ли я использовать список для этого.

            Query query = session.createQuery("from IfasvVendor t0 where     t0.ifasvVendorPK.peId=:id");
            query.setParameter("id", list);
            query.list();

Я также не был уверен, как получить объект, как только я получу запрос.

1 Ответ

2 голосов
/ 29 февраля 2012

Я считаю, что должно работать следующее:

Query query = session.createQuery("from IfasvVendor t0 where t0.ifasvVendorPK.peId in (:id)");
query.setParameterList("id", list);

query.list();

Вы должны заключить именованный параметр в круглые скобки в вашем запросе и использовать setParameterList.См. Javadoc для setParameterList здесь .

Результаты запроса будут в списке, возвращаемом: query.list().Это возвращает непроверенный список, который вы можете преобразовать в List<IfasvVendor>.

btw.это не составной ключевой запрос.см. @Perception комментарий ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...