Цепные запросы в Play!Фреймворк - PullRequest
2 голосов
/ 30 ноября 2011

есть ли способ цепочки запросов в "Play!"Framework вместо того, чтобы вручную писать запрос?

Что-то вроде:

Model m = Model.where ("name", "Bill"). where ("пол", "m") .first ();

Интересно, потому что я недавно переключился с Codeigniter + dmz на grails , а затем на " Играть! " и был немного разочарован цепочкой запросов по сравнению с упомянутой выше платформой

PS: Я явно не говорю о fetch () и из() методы.

Ответы [ 3 ]

4 голосов
/ 01 декабря 2011

Существует объект JpqlSelect, с которым вы можете сделать

public static Model findBill() {
    JpqlSelect select = new JpqlSelect().from("Model").where("name=?").param("Bill").andWhere("gender=?").param("m");
    return find(select.toString(), select.getParams().toArray()).first();
}

Этот помощник далек от завершения, но может удовлетворить ваши потребности

1 голос
/ 01 декабря 2011

Другим вариантом может быть использование http://www.querydsl.com/ с интеграцией jpa.

1 голос
/ 30 ноября 2011

Вы можете сделать это с помощью API критериев java.persistence:

CriteriaQuery q = JPA.em().getCriteriaBuilder().createQuery(Model.class)
q.where(<Expression>).where(<Expression>);
TypedQuery<Model> tq = JPA.em().createQuery(q);
List<Model> result = tq.getResultList();

Смотрите здесь и здесь для запуска

...