2017-03-13 38 views
0

我目前正在嘗試將我的Pl​​ay應用作爲已部署的應用運行。它具有JPA集成,如果我在本地運行應用程序,它可以正常工作。但是,如果我試圖在生產模式下運行,我目前正在此錯誤:Play Framework JPA - 未找到實體

Caused by: java.lang.IllegalArgumentException: Not an entity: class 
     com.mm.entities.Message 
     at org.hibernate.jpa.internal.metamodel.MetamodelImpl.entity(MetamodelImpl.java:194) 
     at org.hibernate.jpa.criteria.QueryStructure.from(QueryStructure.java:124) 
     at org.hibernate.jpa.criteria.CriteriaQueryImpl.from(CriteriaQueryImpl.java:156) 
     at com.mm.helpers.QueryBuilder.<init>(QueryBuilder.java:24) 
     at com.mm.persistence.MessagePersistence.getByReceiver(MessagePersistence.java:49) 
     at com.mm.controllers.Messages.getMessageByReceiver(Messages.java:47) 
     at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.apply(Routes.scala:91) 
     at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.apply(Routes.scala:91) 
     at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157) 
     at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156) 

有沒有人一個想法,它可能是從哪裏來的?裏面persistence.xml我的持久化單元看起來像這樣:

<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
    <non-jta-data-source>MMChat</non-jta-data-source> 
    <properties> 
     <property name="hibernate.archive.autodetection" value="class" /> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> 
     <property name="hibernate.hbm2ddl.auto" value="create-drop" /> 
    </properties> 
</persistence-unit> 

+0

我看不到「實體找不到」。我真的看到「不是一個實體類」...這個類也是如此消息一個實體類?因爲你沒有發佈它! –

+0

是的,你正在寫,消息類有註釋... – Neatoro

回答

1

對於生產模式下,每個DB-實體相關的類應該加入到與完整的包名persistence.xml中。與DB實體相關的類是實體,可嵌入類或屬性轉換器類中的任何一個。 在你的情況這應該是這樣的:

<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
    <non-jta-data-source>MMChat</non-jta-data-source> 
    <class>com.mm.entities.Message</class> 
    <properties> 
    ... 
    </properties> 
</persistence-unit> 
相關問題