org.hibernate.MappingException: Unknown entity in production mode

835 views
Skip to first unread message

Mario Mineo

unread,
Jul 2, 2015, 10:29:00 AM7/2/15
to play-fr...@googlegroups.com
Hello everyone,

I have a strange error with play java 2.4.
My test app (Hibernate - MySQL) work in dev mode but when I try to deploy or just try the production mode with the command testProd hibernate go wrong.

There is the stack trace : 

play.api.UnexpectedException: Unexpected exception[IllegalArgumentException: Unknown entity: models.Person]
        at play
.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:261) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:191) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.GlobalSettings$class.onError(GlobalSettings.scala:179) [com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.DefaultGlobal$.onError(GlobalSettings.scala:212) [com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:94) [com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$9$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:158) [com.typesafe.play.play-netty-server_2.11-2.4.1.jar:2.4.1]
        at play
.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$9$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:155) [com.typesafe.play.play-netty-server_2.11-2.4.1.jar:2.4.1]
        at scala
.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.util.Failure$$anonfun$recover$1.apply(Try.scala:215) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.util.Try$.apply(Try.scala:191) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.util.Failure.recover(Try.scala:215) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [org.scala-lang.scala-library-2.11.6.jar:na]
        at play
.api.libs.iteratee.Execution$trampoline$.executeScheduled(Execution.scala:109) [com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
        at play
.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:71) [com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
        at scala
.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.Promise$class.complete(Promise.scala:55) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:153) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:23) [org.scala-lang.scala-library-2.11.6.jar:na]
        at akka
.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40) [com.typesafe.akka.akka-actor_2.11-2.3.11.jar:na]
        at akka
.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397) [com.typesafe.akka.akka-actor_2.11-2.3.11.jar:na]
        at scala
.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [org.scala-lang.scala-library-2.11.6.jar:na]
Caused by: java.lang.IllegalArgumentException: Unknown entity: models.Person
        at org
.hibernate.jpa.spi.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:1132) ~[org.hibernate.hibernate-entitymanager-4.3.10.Final.jar:4.3.10.Final]
        at org
.hibernate.jpa.spi.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:1068) ~[org.hibernate.hibernate-entitymanager-4.3.10.Final.jar:4.3.10.Final]
        at controllers
.Application.index(Application.java:16) ~[db5.db5-1.0-SNAPSHOT-sans-externalized.jar:na]
        at router
.Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.apply(Routes.scala:95) ~[db5.db5-1.0-SNAPSHOT-sans-externalized.jar:na]
        at router
.Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.apply(Routes.scala:95) ~[db5.db5-1.0-SNAPSHOT-sans-externalized.jar:na]
        at play
.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:136) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:127) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.core.j.JavaAction$$anon$1.call(JavaAction.scala:70) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.http.DefaultHttpRequestHandler$1.call(DefaultHttpRequestHandler.java:20) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.db.jpa.TransactionalAction.lambda$call$5(TransactionalAction.java:19) ~[com.typesafe.play.play-java-jpa_2.11-2.4.1.jar:2.4.1]
        at play
.db.jpa.TransactionalAction$$Lambda$36/982975831.apply(Unknown Source) ~[na:na]
        at play
.db.jpa.DefaultJPAApi.withTransaction(DefaultJPAApi.java:136) ~[com.typesafe.play.play-java-jpa_2.11-2.4.1.jar:2.4.1]
        at play
.db.jpa.JPA.withTransaction(JPA.java:159) ~[com.typesafe.play.play-java-jpa_2.11-2.4.1.jar:2.4.1]
        at play
.db.jpa.TransactionalAction.call(TransactionalAction.java:16) ~[com.typesafe.play.play-java-jpa_2.11-2.4.1.jar:2.4.1]
        at play
.core.j.JavaAction$$anonfun$7.apply(JavaAction.scala:94) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.core.j.JavaAction$$anonfun$7.apply(JavaAction.scala:94) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at scala
.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) [org.scala-lang.scala-library-2.11.6.jar:na]
        at play
.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:40) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:70) [com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
        at play
.core.j.HttpExecutionContext.execute(HttpExecutionContext.scala:32) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at scala
.concurrent.impl.Future$.apply(Future.scala:31) ~[org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.Future$.apply(Future.scala:492) ~[org.scala-lang.scala-library-2.11.6.jar:na]
        at play
.core.j.JavaAction.apply(JavaAction.scala:94) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:105) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:105) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.utils.Threads$.withContextClassLoader(Threads.scala:21) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:104) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:103) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at scala
.Option.map(Option.scala:146) ~[org.scala-lang.scala-library-2.11.6.jar:na]
        at play
.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:103) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:96) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:524) ~[com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
        at play
.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:524) ~[com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
        at play
.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:560) ~[com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
        at play
.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:560) ~[com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
        at play
.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$13.apply(Iteratee.scala:536) ~[com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
        at play
.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$13.apply(Iteratee.scala:536) ~[com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
        at scala
.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) [org.scala-lang.scala-library-2.11.6.jar:na]
       
... 6 common frames omitted
Caused by: org.hibernate.MappingException: Unknown entity: models.Person
        at org
.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1096) ~[org.hibernate.hibernate-core-4.3.10.Final.jar:4.3.10.Final]
        at org
.hibernate.internal.SessionImpl.locateEntityPersister(SessionImpl.java:2601) ~[org.hibernate.hibernate-core-4.3.10.Final.jar:4.3.10.Final]
        at org
.hibernate.internal.SessionImpl.access$1900(SessionImpl.java:176) ~[org.hibernate.hibernate-core-4.3.10.Final.jar:4.3.10.Final]
        at org
.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2540) ~[org.hibernate.hibernate-core-4.3.10.Final.jar:4.3.10.Final]
        at org
.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2544) ~[org.hibernate.hibernate-core-4.3.10.Final.jar:4.3.10.Final]
        at org
.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2531) ~[org.hibernate.hibernate-core-4.3.10.Final.jar:4.3.10.Final]
        at org
.hibernate.internal.SessionImpl.byId(SessionImpl.java:1079) ~[org.hibernate.hibernate-core-4.3.10.Final.jar:4.3.10.Final]
        at org
.hibernate.internal.SessionImpl.get(SessionImpl.java:991) ~[org.hibernate.hibernate-core-4.3.10.Final.jar:4.3.10.Final]
        at org
.hibernate.jpa.spi.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:1110) ~[org.hibernate.hibernate-entitymanager-4.3.10.Final.jar:4.3.10.Final]
       
... 45 common frames omitted

My build.sbt 

name := """db5"""
version
:= "1.0-SNAPSHOT"
lazy val root
= (project in file(".")).enablePlugins(PlayJava)
scalaVersion
:= "2.11.6"
libraryDependencies
++= Seq(
  javaJdbc
,
  javaJpa
,
  cache
,
  javaWs
,
 
"org.hibernate" % "hibernate-entitymanager" % "4.3.10.Final",
 
"mysql" % "mysql-connector-java" % "5.1.35"
)
routesGenerator
:= InjectedRoutesGenerator

My application conf

db.default.driver=com.mysql.jdbc.Driver
db
.default.url="jdbc:mysql://localhost/db5"
db
.default.username="***"
db
.default.password="***"
db
.default.jndiName=DefaultDS
jpa
.default=defaultPersistenceUnit

My /conf/META-INF/persistence.xml

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             
version="2.1">
   
<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
       
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
       
<non-jta-data-source>DefaultDS</non-jta-data-source>
       
<properties>
           
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
       
</properties>
   
</persistence-unit>
</persistence>

My basic controller :

package controllers;

import models.Person;
import play.db.jpa.JPA;
import play.db.jpa.Transactional;
import play.mvc.*;

import views.html.*;

public class Application extends Controller {
   
@Transactional
   
public Result index() {
        JPA
.em().find(Person.class, 1L);
       
return ok(index.render("Your new application is ready."));
   
}
}

And my model :

package models;

import javax.persistence.*;

@Entity
@Table(name="Person")
public class Person {
   
@Id
   
@GeneratedValue
   
@Column(name="id")
   
private Long id;

   
@Column(name="lastname")
   
private String lastname;

   
@Column(name="firstname")
   
private String firstname;

   
public Long getId() {
       
return id;
   
}

   
public void setId(Long id) {
       
this.id = id;
   
}

   
public String getLastname() {
       
return lastname;
   
}

   
public void setLastname(String lastname) {
       
this.lastname = lastname;
   
}

   
public String getFirstname() {
       
return firstname;
   
}

   
public void setFirstname(String firstname) {
       
this.firstname = firstname;
   
}
}


Any idea?

Regards

Matthias Kurz

unread,
Jul 2, 2015, 12:03:15 PM7/2/15
to play-fr...@googlegroups.com
Set

PlayKeys.externalizeResources := false
in your build.sbt
This should fix it.

Check out https://github.com/playframework/playframework/issues/4590 (the last comments are probably the interesting ones).

Best Regards,

Matthias



On Thursday, 2 July 2015 16:29:00 UTC+2, Mario wrote:
Hello everyone,

I have a strange error with play java 2.4.
My test app (Hibernate - MySQL) work in dev mode but when I try to deploy or just try the production mode with the command testProd hibernate go wrong.

There is the stack trace : 

play.api.UnexpectedException: Unexpected exception[IllegalArgumentException: Unknown entity: models.Person]
        at play
.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:261) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:191) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.GlobalSettings$class.onError(GlobalSettings.scala:179) [com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.DefaultGlobal$.onError(GlobalSettings.scala:212) [com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:94) [com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
        at play
.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$9$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:158) [com.typesafe.play.play-netty-server_2.11-2.4.1.jar:2.4.1]
        at play
.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$9$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:155) [com.typesafe.play.play-netty-server_2.11-2.4.1.jar:2.4.1]
        at scala
.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.util.Failure$$anonfun$recover$1.apply(Try.scala:215) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.util.Try$.apply(Try.scala:191) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.util.Failure.recover(Try.scala:215) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [org.scala-lang.scala-library-2.11.6.jar:na]
        at scala
.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [org.scala-lang.scala-library-2.11.6.jar:na]
        at play
.api.libs.iteratee.Execution$trampoline$.executeScheduled(Execution.scala:109) [com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
        at play
.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:71) [com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
        at scala
.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40)
...

Mario

unread,
Jul 3, 2015, 3:07:47 AM7/3/15
to play-fr...@googlegroups.com
Hello Matthias !

Fixed ;-) thank you a lot

Best regards,
Reply all
Reply to author
Forward
0 new messages