Note that there are some explanatory texts on larger screens.

plurals
  1. POjavax.persistence.PersistenceException in Hibernate
    text
    copied!<p>I have generated POJO's and corresponding hbm.xml mapping files from a database. I wanted to test whether this worked correctly so I created a simple HelloWorld that reads all the data in one Table and prints it. When I attempt to run this, a PersistenceException is thrown. Here is my StackTrace:</p> <pre><code>javax.persistence.PersistenceException: [PersistenceUnit: helloworld] Unable to build EntityManagerFactory at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:924) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:899) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:59) at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source) at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source) at de.planet.hibernateHelloWorld.HelloWorld.service(HelloWorld.java:51) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:662) Caused by: org.hibernate.AnnotationException: Use of the same entity name twice: NnsNetzdaten at org.hibernate.cfg.annotations.EntityBinder.bindEntity(EntityBinder.java:403) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:585) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3512) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3466) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1355) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1756) at org.hibernate.ejb.EntityManagerFactoryImpl.&lt;init&gt;(EntityManagerFactoryImpl.java:96) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914) ... 30 more Caused by: org.hibernate.DuplicateMappingException: duplicate import: NnsNetzdaten refers to both de.planet.hibernateHelloWorld.data.NnsNetzdaten and NnsNetzdaten (try using auto-import="false") at org.hibernate.cfg.Configuration$MappingsImpl.addImport(Configuration.java:2646) at org.hibernate.cfg.annotations.EntityBinder.bindEntity(EntityBinder.java:396) ... 37 more </code></pre> <p>I am deploying the application to a Glassfish 3 server directly from Eclipse Kepler. However this problem also occurs when I package and deploy the application using Maven.</p> <p>Here is my persistence.xml: </p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;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_1_0.xsd" version="1.0"&gt; &lt;persistence-unit name="helloworld"&gt; &lt;provider&gt;org.hibernate.ejb.HibernatePersistence&lt;/provider&gt; &lt;properties&gt; &lt;property name="hibernate.archive.autodetection" value="class, hbm" /&gt; &lt;property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" /&gt; &lt;property name="hibernate.connection.password" value="**********" /&gt; &lt;property name="hibernate.connection.url" value="jdbc:oracle:thin:@d11503oracle1.planet-ic.de:1521:XE" /&gt; &lt;property name="hibernate.connection.username" value="WEMAG_ENET_DEV" /&gt; &lt;property name="hibernate.default_schema" value="WEMAG_ENET_DEV" /&gt; &lt;property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" /&gt; &lt;property name="hibernate.c3p0.max_size" value="30" /&gt; &lt;property name="hibernate.c3p0.min_size" value="5" /&gt; &lt;property name="hibernate.c3p0.idle_test_period" value="3000" /&gt; &lt;property name="hibernate.c3p0.timeout" value="300" /&gt; &lt;property name="hibernate.c3p0.max_statements" value="50" /&gt; &lt;property name="hibernate.show_sql" value="true" /&gt; &lt;property name="hibernate.format_sql" value="true" /&gt; &lt;/properties&gt; &lt;/persistence-unit&gt; &lt;/persistence&gt; </code></pre> <p>Each POJO class also has the following annotations before the class definition: </p> <pre><code>@Entity @Table(name = "[Table Name]") </code></pre> <p>I didn't think these were necessary, so I tried removing them, but this cause all sorts of problems so I don't think that's the way to go :p</p> <p>EDIT: It works now, See Answer, but I don't know why. Hibernate is no longer detecting the hbm.xml mapping data so, since the POJO classes don't contain any mapping data, it should not be able to fetch data from the database :-/.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload