Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 播放框架JPA-未找到实体_Java_Hibernate_Jpa_Playframework - Fatal编程技术网

Java 播放框架JPA-未找到实体

Java 播放框架JPA-未找到实体,java,hibernate,jpa,playframework,Java,Hibernate,Jpa,Playframework,我当前正在尝试将我的Play应用程序作为已部署的应用程序运行。它有一个JPA集成,如果我在本地运行该应用程序,它可以很好地工作。但如果我试图在生产模式下运行,我当前会遇到以下错误: Caused by: java.lang.IllegalArgumentException: Not an entity: class com.mm.entities.Message at org.hibernate.jpa.internal.metamodel.MetamodelImpl.

我当前正在尝试将我的Play应用程序作为已部署的应用程序运行。它有一个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)

对于生产模式,每个与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>

org.hibernate.jpa.HibernatePersistenceProvider
嗯聊天
com.mm.entities.Message
...

我看不到“未找到实体”。我实际上看到“不是实体类”。。。那么这个类消息是实体类吗?因为你没有发布它!是的,你在写,消息类有注释。。。
<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>