Запрос между двумя датами + другой столбец не работает в Hibernate 5 - PullRequest
0 голосов
/ 30 апреля 2018

Я могу получить записи, используя

`Criteria crit = session.createCriteria(GenerateInvoiceBean.class);
crit.add(Restrictions.eq("dealerId", dealerId)).add(Restrictions.between("billDate", frDate, tDate));
List<GenerateInvoiceBean> gib = crit.list();
            return gib;`

Так как createCriteria устарела в Hibernate 5.1.16, я пытаюсь использовать

`CriteriaBuilder builder = session.getCriteriaBuilder();
            CriteriaQuery<GenerateInvoiceBean> query = builder.createQuery(GenerateInvoiceBean.class);

            Root<GenerateInvoiceBean> root = query.from(GenerateInvoiceBean.class);
            query.select(root).where(builder.equal(root.get("dealerId"), dealerId)).where(builder.between(root.get("billDate"), frDate, tDate))
            .orderBy(builder.asc(root.get("billNo")));

            List<GenerateInvoiceBean> gib = session.createQuery(query).getResultList();
            return gib;`

который не работает. Любое решение или предложение было бы здорово! Спасибо

1 Ответ

0 голосов
/ 30 апреля 2018

Измените свой вызов CriteriaQuery на

query.select(root)
    .where(builder.equal(root.get("dealerId"), dealerId), 
           builder.between(root.get("billDate"), frDate, tDate))
    .orderBy(builder.asc(root.get("billNo")));

так что оба предложения обрабатываются вместе в одном вызове.

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