播放JPA查询示例

时间:2013-08-01 01:14:21

标签: java model-view-controller playframework

如何在Play MVC中使用JPA。我尝试了很多变种。但所有不成功的。

public class Application extends Controller {

    public static void book() {
        EntityManager em = JPA.em();
        List<Book> bookList = em.createNativeQuery("select * from book").getResultList();

        render( bookList );
    }


    public static void index() {
        render( );
    }
}

我得到这样的错误:

发生JPA错误(JPA上下文未初始化.JPA实体管理器在应用程序中找到一个或多个使用@ javax.persistence.Entity注释注释的类时自动启动。):

第二种变体不起作用:

@NamedQuery(name =“findFoo”,query =“从Foo f中选择f,其中f.state in:stateInList”)

final Query query = this.entityManager.createNamedQuery(“findFoo”);

如何使用NamedQuery?在哪里放置NamedQuery ??

1 个答案:

答案 0 :(得分:0)

您的命名查询是正确的,您可以将其写在实体

之上
@Entity
@Table(name = "Foo")
@NamedQuery(
{
    @NamedQuery(name = "findFoo", query = "select f from Foo f where f.state in :stateInList")
)}
public class Foo
{
 ....

}