我在Play 2中使用JPA。在Build.scala中,我具有以下内容:

object ApplicationBuild extends Build {

  val appName = "weasel"
  val appVersion = "1.0-SNAPSHOT"

  val appDependencies = Seq(
    javaCore,
    javaJdbc,
    javaJpa,
    "org.hibernate" % "hibernate-entitymanager" % "4.1.7.Final"
  )

  val main = play.Project(appName, appVersion, appDependencies).settings(
    ebeanEnabled := false
  )
}


一个非常简单的模型:

import javax.persistence.*;
@Entity
@Table(name = "event")
public class Event {
    @Id
    @Column(name = "EVENT_NO")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;
    @Column(name = "EVENT_OUTPUT_LOG", length = 250)
    private String message;

    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
}


标准application.conf配置:

db.default.jndiName=DefaultDS
jpa.default=defaultPersistenceUnit
db.default.logStatements=true
# ebean.default="models.*"
evolutionplugin=disabled


执行标准选择SELECT e FROM Event e时,我看到它正在执行以下查询:

select event0_.EVENT_NO as EVENT1_4_,
event0_._ebean_intercept as column2_4_,
event0_.EVENT_OUTPUT_LOG as EVENT3_4_
from EVENT event0_


为什么这样做呢?我已经告诉过不要使用ebeans。我也做了一个干净的编译...但是它没有改变任何东西。

先感谢您。

最佳答案

从Build.sbt中删除javaEbean依赖关系似乎可以解决此问题。我不知道为什么当ebeanEnabled设置为false时,播放首先要使用ebean。

08-06 10:05