[hibernate-issues] [Hibernate-JIRA] Created: (ANN-450) @MapKey does not work with embedded fields

Bryan Brouckaert (JIRA) noreply at atlassian.com
Wed Oct 11 03:12:24 EDT 2006


@MapKey does not work with embedded fields
------------------------------------------

         Key: ANN-450
         URL: http://opensource.atlassian.com/projects/hibernate/browse/ANN-450
     Project: Hibernate Annotations
        Type: Bug

    Versions: 3.2.0.cr3    
 Environment: Windows, JBoss Embedded EJB3 with the latested Hibernate Libaries (manually replaced)
    Reporter: Bryan Brouckaert


@javax.persistence.MapKey does not seem to work with @embedded fields.

The following is programmed (simplified):

@Entity
public class MyClass
{
   @Id
   @GeneratedValue
   private int id;

   @MapKey(name="myKey")
   private Map<KeyClass, OtherClass> myField; 

   ...
}

@Entity
public class OtherClass
{
   @Id
   @GeneratedValue
   private int id;

   @Embedded
   private KeyClass myKey;

   ...
}

@Embeddable
public class KeyClass
{
   private String key1;
   private String key2;
}



The following exception is thrown:

ERROR 11-10 08:52:30,862 (AbstractController.java:incrementState:440)  -Error installing to Start: name=persistence.units:jar=sidecam.jar,unitName=sidecam state=Create
java.lang.ArrayIndexOutOfBoundsException: 1
	at org.hibernate.sql.SimpleSelect.addColumns(SimpleSelect.java:41)
	at org.hibernate.persister.collection.AbstractCollectionPersister.generateSelectRowByIndexString(AbstractCollectionPersister.java:894)
	at org.hibernate.persister.collection.AbstractCollectionPersister.<init>(AbstractCollectionPersister.java:478)
	at org.hibernate.persister.collection.OneToManyPersister.<init>(OneToManyPersister.java:60)
	at org.hibernate.persister.PersisterFactory.createCollectionPersister(PersisterFactory.java:72)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:250)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1218)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:691)
	at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
	at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:264)
	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 org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:55)
	at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:107)
	at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
	at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:75)
	at org.jboss.kernel.plugins.dependency.LifecycleAction.installAction(LifecycleAction.java:115)
	at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.install(KernelControllerContextAction.java:100)
	at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:226)
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:709)
	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:429)
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:538)
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:472)
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:274)
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:177)
	at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:79)
	at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:73)
	at org.jboss.ejb3.MCKernelAbstraction.install(MCKernelAbstraction.java:131)
	at org.jboss.ejb3.Ejb3Deployment.startPersistenceUnits(Ejb3Deployment.java:467)
	at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:317)
	at org.jboss.ejb3.embedded.EJB3StandaloneDeployer.start(EJB3StandaloneDeployer.java:478)
	at org.jboss.ejb3.embedded.EJB3StandaloneBootstrap.scanClasspath(EJB3StandaloneBootstrap.java:235)
	at be.sigedis.argo.sidecam.tests.ServiceCarriereTest.startupEmbeddedJboss(ServiceCarriereTest.java:55)
	at be.sigedis.argo.sidecam.tests.ServiceCarriereTest$1.setUp(ServiceCarriereTest.java:41)
	at junit.extensions.TestSetup$1.protect(TestSetup.java:18)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.extensions.TestSetup.run(TestSetup.java:23)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:297)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:672)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:567)


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira




More information about the hibernate-issues mailing list