如何在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上下文。当在应用程序中找到一个或多个带有@ javax.persistence.Entity批注的类时,JPA实体管理器会自动启动。):
第二个变种不起作用:
@NamedQuery(name =“ findFoo”,查询=“从Foo f中选择f,其中:stateInList中的f.state”)
最终查询查询= this.entityManager.createNamedQuery(“ findFoo”);
如何与NamedQuery一起使用?在哪里放置NamedQuery?
最佳答案
您命名的查询是正确的,您可以将其写在实体上方
@Entity
@Table(name = "Foo")
@NamedQuery(
{
@NamedQuery(name = "findFoo", query = "select f from Foo f where f.state in :stateInList")
)}
public class Foo
{
....
}