javax.persistence.PersistenceException: org.hibernate.AnnotationException: Map key property not found: com.ccad.common.keylist.db.DBUnitRecord.unitID

Hibernate JIRA | Eric Berry | 1 decade ago
  1. 0

    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

    Hibernate JIRA | 1 decade ago | Eric Berry
    javax.persistence.PersistenceException: org.hibernate.AnnotationException: Map key property not found: com.ccad.common.keylist.db.DBUnitRecord.unitID
  2. 0

    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

    Hibernate JIRA | 1 decade ago | Eric Berry
    javax.persistence.PersistenceException: org.hibernate.AnnotationException: Map key property not found: com.ccad.common.keylist.db.DBUnitRecord.unitID
  3. 0

    Should Hibernate be able to handle overlapping foreign keys?

    Stack Overflow | 6 years ago | Kawu
    javax.persistence.PersistenceException: [PersistenceUnit: geoinfo] Unable to configure EntityManagerFactory
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    OneToOne shared Primary Key, Pure JPA 2.0 Solution works with EclipseLink but fails with with Hibernate Provider

    Stack Overflow | 3 years ago | nirmalsingh
    javax.persistence.PersistenceException: [PersistenceUnit: users] Unable to configure EntityManagerFactory
  6. 0

    Hibernate: AnnotationException: Unknown mappedBy in ... referenced property unknown on reverse (mappedBy), bi-directional @OneToOne associations

    Stack Overflow | 6 years ago | Kawu
    javax.persistence.PersistenceException: [PersistenceUnit: persons] Unable to configure EntityManagerFactory

    4 unregistered visitors
    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. org.hibernate.MappingException

      property not found: unitID

      at org.hibernate.mapping.PersistentClass.getProperty()
    2. Hibernate
      Configuration.buildMappings
      1. org.hibernate.mapping.PersistentClass.getProperty(PersistentClass.java:315)
      2. org.hibernate.cfg.annotations.MapBinder.bindKeyFromAssociationTable(MapBinder.java:85)
      3. org.hibernate.cfg.annotations.MapBinder.access$000(MapBinder.java:22)
      4. org.hibernate.cfg.annotations.MapBinder$2.secondPass(MapBinder.java:62)
      5. org.hibernate.cfg.HbmBinder$SecondPass.doSecondPass(HbmBinder.java:2544)
      6. org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:860)
      7. org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:199)
      8. org.hibernate.cfg.Configuration.buildMappings(Configuration.java:825)
      8 frames
    3. Hibernate EJB
      HibernatePersistence.createEntityManagerFactory
      1. org.hibernate.ejb.HibernatePersistence.handleCallbacks(HibernatePersistence.java:189)
      2. org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:180)
      3. org.hibernate.ejb.HibernatePersistence.createFactory(HibernatePersistence.java:77)
      4. org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:93)
      4 frames
    4. JavaEE 7
      Persistence.createEntityManagerFactory
      1. javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:42)
      2. javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:29)
      2 frames
    5. com.ccad.common
      DBKeylistTest.testDBKeylist
      1. com.ccad.common.keylist.test.DBKeylistTest.testDBKeylist(DBKeylistTest.java:71)
      1 frame
    6. Java RT
      Method.invoke
      1. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      2. sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      3. sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      4. java.lang.reflect.Method.invoke(Unknown Source)
      4 frames
    7. JUnit
      TestSuite.run
      1. junit.framework.TestCase.runTest(TestCase.java:154)
      2. junit.framework.TestCase.runBare(TestCase.java:127)
      3. junit.framework.TestResult$1.protect(TestResult.java:106)
      4. junit.framework.TestResult.runProtected(TestResult.java:124)
      5. junit.framework.TestResult.run(TestResult.java:109)
      6. junit.framework.TestCase.run(TestCase.java:118)
      7. junit.framework.TestSuite.runTest(TestSuite.java:208)
      8. junit.framework.TestSuite.run(TestSuite.java:203)
      8 frames
    8. JUnit3 Runner
      RemoteTestRunner.main
      1. org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
      2. org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
      3. org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
      3 frames