Java 在Play框架中使用JPA/Hibernate创建表/查询

Java 在Play框架中使用JPA/Hibernate创建表/查询,java,playframework,playframework-2.2,Java,Playframework,Playframework 2.2,因此,我现在使用JPA和Hibernate运行Play框架。我对这两个网站都是全新的,我在网上找到的教程让我目不暇接 我究竟如何发送一个简单的查询或创建一个表?这是我编写的示例代码,我得到:“RuntimeException:没有EntityManager绑定到此线程。请尝试在JPA.withTransaction中包装此调用,或确保在此线程上设置了HTTP上下文。” Le'ts开始说,你不想自己构建表,只需在models包下编写模型,用@Entity注释它们,JPA插件就会自动生成与你定义的模

因此,我现在使用JPAHibernate运行Play框架。我对这两个网站都是全新的,我在网上找到的教程让我目不暇接

我究竟如何发送一个简单的查询或创建一个表?这是我编写的示例代码,我得到:
“RuntimeException:没有EntityManager绑定到此线程。请尝试在JPA.withTransaction中包装此调用,或确保在此线程上设置了HTTP上下文。”


Le'ts开始说,你不想自己构建表,只需在models包下编写模型,用@Entity注释它们,JPA插件就会自动生成与你定义的模型匹配的表。 对于该错误,会引发该错误,因为您应该使用@Transactional注释对该方法进行注释。 如官方文件所述 “每个JPA调用都必须在事务中完成,因此,要为特定操作启用JPA,请使用@play.db.JPA.Transactional对其进行注释。这将用一个JPA操作组成您的操作方法,该操作为您管理事务” 希望它有助于btw阅读文件,并有一个看电脑jpa的例子是建议

    package controllers;


import play.Logger;
import javax.persistence.Entity;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;

import play.db.jpa.JPA;
import play.mvc.Controller;
import play.db.*;

public class Database {

    public static void initbuild() {
        Logger.info("Checking database structure. The database will be restructured if not in the correct format.");
        JPA.em().createQuery("create table test");

    }
}