javax.persistence.PersistenceException

There are no available Samebug tips for this exception. Do you have an idea how to solve this issue? A short tip would help users who saw this issue last week.

  • I have the following annotations on a property: class DBKeylist { ... @OneToMany( targetEntity = DBUnitRecord.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "keylistUID" ) @MapKey( name="unitID" ) @OrderBy( clause="UR_UID ASC" ) @OnDelete( action = OnDeleteAction.CASCADE ) private Map< Long, UnitRecord > unitRecords; ... } class DBUnitRecord { @Basic @Column( name = "UR_UID" ) @Id private long unitID; ... } I know that the name="unitID" for @MapKey is not strictly necessary since unitID is the primaryKey. However, I wanted to include it for completeness and as kind of a comment for myself. However, when I put it in, Hibernate throws the following exception. From tracing through the Hibernate code, it appears that this exception would only thrown if the primary key is specified. javax.persistence.PersistenceException: org.hibernate.AnnotationException: Map key property not found: com.ccad.common.keylist.db.DBUnitRecord.unitID at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:100) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:42) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:29) at com.ccad.common.keylist.test.DBKeylistTest.testDBKeylist(DBKeylistTest.java:71) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: org.hibernate.AnnotationException: Map key property not found: com.ccad.common.keylist.db.DBUnitRecord.unitID at org.hibernate.cfg.annotations.MapBinder.bindKeyFromAssociationTable(MapBinder.java:89) at org.hibernate.cfg.annotations.MapBinder.access$000(MapBinder.java:22) at org.hibernate.cfg.annotations.MapBinder$2.secondPass(MapBinder.java:62) at org.hibernate.cfg.HbmBinder$SecondPass.doSecondPass(HbmBinder.java:2544) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:860) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:199) at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:825) at org.hibernate.ejb.HibernatePersistence.handleCallbacks(HibernatePersistence.java:189) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:180) at org.hibernate.ejb.HibernatePersistence.createFactory(HibernatePersistence.java:77) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:93) ... 18 more Caused by: org.hibernate.MappingException: property not found: unitID at org.hibernate.mapping.PersistentClass.getProperty(PersistentClass.java:315) at org.hibernate.cfg.annotations.MapBinder.bindKeyFromAssociationTable(MapBinder.java:85) ... 28 more
    via by Eric Berry,
  • I have the following annotations on a property: class DBKeylist { ... @OneToMany( targetEntity = DBUnitRecord.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "keylistUID" ) @MapKey( name="unitID" ) @OrderBy( clause="UR_UID ASC" ) @OnDelete( action = OnDeleteAction.CASCADE ) private Map< Long, UnitRecord > unitRecords; ... } class DBUnitRecord { @Basic @Column( name = "UR_UID" ) @Id private long unitID; ... } I know that the name="unitID" for @MapKey is not strictly necessary since unitID is the primaryKey. However, I wanted to include it for completeness and as kind of a comment for myself. However, when I put it in, Hibernate throws the following exception. From tracing through the Hibernate code, it appears that this exception would only thrown if the primary key is specified. javax.persistence.PersistenceException: org.hibernate.AnnotationException: Map key property not found: com.ccad.common.keylist.db.DBUnitRecord.unitID at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:100) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:42) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:29) at com.ccad.common.keylist.test.DBKeylistTest.testDBKeylist(DBKeylistTest.java:71) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: org.hibernate.AnnotationException: Map key property not found: com.ccad.common.keylist.db.DBUnitRecord.unitID at org.hibernate.cfg.annotations.MapBinder.bindKeyFromAssociationTable(MapBinder.java:89) at org.hibernate.cfg.annotations.MapBinder.access$000(MapBinder.java:22) at org.hibernate.cfg.annotations.MapBinder$2.secondPass(MapBinder.java:62) at org.hibernate.cfg.HbmBinder$SecondPass.doSecondPass(HbmBinder.java:2544) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:860) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:199) at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:825) at org.hibernate.ejb.HibernatePersistence.handleCallbacks(HibernatePersistence.java:189) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:180) at org.hibernate.ejb.HibernatePersistence.createFactory(HibernatePersistence.java:77) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:93) ... 18 more Caused by: org.hibernate.MappingException: property not found: unitID at org.hibernate.mapping.PersistentClass.getProperty(PersistentClass.java:315) at org.hibernate.cfg.annotations.MapBinder.bindKeyFromAssociationTable(MapBinder.java:85) ... 28 more
    via by Eric Berry,
    • javax.persistence.PersistenceException: org.hibernate.AnnotationException: Map key property not found: com.ccad.common.keylist.db.DBUnitRecord.unitID at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:100) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:42) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:29) at com.ccad.common.keylist.test.DBKeylistTest.testDBKeylist(DBKeylistTest.java:71) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: org.hibernate.AnnotationException: Map key property not found: com.ccad.common.keylist.db.DBUnitRecord.unitID at org.hibernate.cfg.annotations.MapBinder.bindKeyFromAssociationTable(MapBinder.java:89) at org.hibernate.cfg.annotations.MapBinder.access$000(MapBinder.java:22) at org.hibernate.cfg.annotations.MapBinder$2.secondPass(MapBinder.java:62) at org.hibernate.cfg.HbmBinder$SecondPass.doSecondPass(HbmBinder.java:2544) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:860) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:199) at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:825) at org.hibernate.ejb.HibernatePersistence.handleCallbacks(HibernatePersistence.java:189) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:180) at org.hibernate.ejb.HibernatePersistence.createFactory(HibernatePersistence.java:77) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:93) ... 18 more Caused by: org.hibernate.MappingException: property not found: unitID at org.hibernate.mapping.PersistentClass.getProperty(PersistentClass.java:315) at org.hibernate.cfg.annotations.MapBinder.bindKeyFromAssociationTable(MapBinder.java:85) ... 28 more

    Users with the same issue

    Unknown visitor
    Unknown visitor1 times, last one,