Какова правильная конфигурация для Play 2.4 / Ebean / JPA / hibernate-entitymanager?
Я пытаюсь перенести проект Play 2.3.10 на версию 2.4.4. В настоящее время использует:
libraryDependencies ++= Seq(javaCore, javaJdbc, javaJpa, javaEbean, javaWs, ...
"org.hibernate" % "hibernate-entitymanager" % "3.6.9.Final"
Я обновил определение сборки:
- Удалены
javaEbean
из библиотеки Зависимости вBuild.scala
- добавленной
.enablePlugins(PlayJava, PlayEbean, PlayEnhancer)
вBuild.scala
- добавленной
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")
вplugins.sbt
- добавленной
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")
вplugins.sbt
"org.hibernate" % "hibernate-entitymanager" % "4.3.9.Final"
В конце я получил это исключение во время выполнения для одного объекта:
Repeated column in mapping for entity: models.A column: _ebean_intercept (should be mapped with insert="false" update="false")
Я предполагаю, что что-то не так с улучшением байтового кода, но я понятия не имею, как это работает. В классе модели нет ничего исключительного, кроме того, что я обновил базовый класс из play.db.ebean.Model
в com.avaje.ebean.Model
, Он также имеет @EmbeddedId
которые используют другую модель, которая имеет @Embeddable
,
1 ответ
Я не уверен, почему у вас есть Hibernate-EntityManager? Я предполагаю, что вы хотите использовать Ebean. Если это так, вот как у меня это работает:
- Убедитесь, что у вас есть PlayEbean, добавленный к включенным плагинам, и добавьте javaJPA [только для аннотаций] и соединитель mysql для build.sbt, как показано ниже
build.sbt
lazy val root = (project in file(".")).enablePlugins(PlayJava,PlayEbean)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
javaJdbc,
javaJpa,
"mysql" % "mysql-connector-java" % "5.1.34",
)
- Включите sbt play ebean, чтобы улучшить ваши модели. Вам не нужно включать sbt-play-Enhancer, если у вас включен sbt-play-ebean.
Проект /plugins.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")
- Добавьте конфигурацию базы данных и декларацию моделей в
application.conf
application.conf
ebean.default = ["models.*"]
db.default.driver=<database driver>
db.default.url=<database url>
db.default.username=<username>
db.default.password=<password>