Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Play! Framework и Hibernate Criteria


Автор: Logo 12.6.2012, 02:43
Как использовать Hibernate Criteria в Play framework?

Является ли такой код правильным?

Код

import play.db.jpa.JPA;
import org.hibernate.classic.Session;
import org.hibernate.criterion.*;

public static void index() {
  Session s = (Session)JPA.em().getDelegate();
  Post frontPost = (Post) s.createCriteria(Post.class)
    .addOrder(Order.desc("postedAt"))
    .list().iterator().next();

   

Автор: Stolzen 12.6.2012, 08:09
В критерии есть метод uniqueResult, похоже, вам именно он нужен

Автор: Logo 12.6.2012, 19:26
uniqueResult в данном случае не подходит, нужно выбрать первую строку. uniqueResult выбрасывает исключение NonUniqueResultException.
Либо тогда нужно обязательно добавить limit 1?

Автор: Stolzen 12.6.2012, 19:35
Да, действительно. Тогда вам нужно criteria.setMaxResults(1).uniqueResult()

Автор: Logo 12.6.2012, 19:42
А насколько с точки зрения Play Framework правильна строка Session s = (Session)JPA.em().getDelegate();?
Нет ли чего то вроде
Код

  Post frontPost = Post.createCriteria()
    .addOrder(Order.desc("postedAt"))
    ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)