Java 更改和重新加载时出现eclipselink错误的Play框架
在将eclipselink集成到play框架中时,我面临一些问题。当我输入run时,服务器启动,我可以连接到我的应用程序而不会出现任何错误 但是:之后,当我(作为一个例子)强制重新编译一个小的更改时,应用程序会因错误而中断(在em.persist上): 我所做的(保持简单)汽车模型:Java 更改和重新加载时出现eclipselink错误的Play框架,java,jpa,playframework-2.0,eclipselink,Java,Jpa,Playframework 2.0,Eclipselink,在将eclipselink集成到play框架中时,我面临一些问题。当我输入run时,服务器启动,我可以连接到我的应用程序而不会出现任何错误 但是:之后,当我(作为一个例子)强制重新编译一个小的更改时,应用程序会因错误而中断(在em.persist上): 我所做的(保持简单)汽车模型: package model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.pers
package model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "car")
public class Car {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int carId;
private String name;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
我的build.sbt如下所示:
name := "WebTest"
version := "1.0-SNAPSHOT"
libraryDependencies ++= Seq(
"org.eclipse.persistence" % "eclipselink" % "2.5.1",
"mysql" % "mysql-connector-java" % "5.1.18",
javaJdbc,
javaEbean,
cache
)
play.Project.playJavaSettings
application.conf(部分):
Ans conf.META-INFO中的my persistence.xml(drop create之前就在那里):
提前谢谢 我自己解决了这个问题: 关键是使用@Transactional进行注释。但是在build.sbt必须这样修改之前
"org.eclipse.persistence" % "eclipselink" % "2.5.1",
"mysql" % "mysql-connector-java" % "5.1.18",
javaJdbc,
javaJpa
在游戏机中,您必须“重新加载”。只有在“eclipse”并再次导入项目(至少我的eclipse不喜欢它)时,才能导入
import play.db.jpa.Transactional;
不止
JPA.em()
你可以找entitymanager
public class Application extends Controller {
private static final String PERSISTENCE_UNIT_NAME = "defaultPersistenceUnit";
private static EntityManagerFactory factory;
public static Result index() {
factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
Car car = new Car();
car.setName("Supercar");
em.persist(car);
em.getTransaction().commit();
em.close();
return ok(index.render("Your new application is ready."));
}
}
"org.eclipse.persistence" % "eclipselink" % "2.5.1",
"mysql" % "mysql-connector-java" % "5.1.18",
javaJdbc,
javaJpa
import play.db.jpa.Transactional;
JPA.em()