2016-07-16 9 views
0

У меня есть ошибка при сохранении моих данных, и я понятия не имею, в чем проблема там!Ошибка при сохранении модели JPA

Вот содержание persistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
      version="2.0"> 

    <persistence-unit name="manager1" transaction-type="RESOURCE_LOCAL"> 

     <properties> 

      <!--PostgreSQL--> 
      <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/> 
      <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/postgres"/> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/> 
      <property name="hibernate.connection.username" value="postgres"/> 
      <property name="hibernate.connection.password" value="postgres"/> 
      <property name="hibernate.archive.autodetection" value="class"/> 
      <property name="hibernate.id.new_generator_mappings" value="true"/> 
      <property name="hibernate.hbm2ddl.auto" value="update"/> 
      <property name="hibernate.ejb.metamodel.generation" value="disabled"/> 
      <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.DefaultComponentSafeNamingStrategy"/> 
      <property name="hibernate.show_sql" value="true"/> 
     </properties> 

    </persistence-unit> 

</persistence> 

Вот Покой вебсервис вызов:

@GET 
@Path("/") 
public Response test() { 

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("manager1"); 
    EntityManager em = emf.createEntityManager(); 

    Member member = new Member("doux"); 
    em.persist(member); 


    em.close(); 
    emf.close(); 

    return Response.status(Response.Status.OK).build(); 
} 

и вот ошибка у меня есть !! :

message Unknown entity: ca.products.jpa_models.Member 

    description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête. 

    exception 

    java.lang.IllegalArgumentException: Unknown entity: ca.products.jpa_models.Member 
     org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1149) 
     ca.products.services.RestServices.test(RestServices.java:41) 
     sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     java.lang.reflect.Method.invoke(Method.java:497) 
     com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) 
     com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) 
     com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) 
     com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) 
     com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 
     com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
     com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) 
     com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) 
     com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) 
     com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) 
     com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) 
     com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) 
     com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) 
     com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

ответ

0

Я нашел решение:

я должен объявить ссылку на класс в моем persistence.xml, так как не принадлежащие к одной и той же упаковке !!

<class>ca.products.jpa_models.Member</class> 

Вот источник:

Класс: Элемент класса определяет полное имя класса, который вы карту. По умолчанию все необходимые аннотированные классы и все файлы hbm.xml, найденные внутри архива, добавляются в конфигурацию устройства с постоянством . Однако вы можете добавить некоторую внешнюю сущность через элемент класса . В качестве дополнения к спецификации вы можете добавить в элемент имя (например, org.hibernate.eg). Осторожно, пакет будет содержать метаданные, определенные на уровне пакета (то есть в package-info.java), он не будет включать все классы данного пакета.