# Jav a.lang.IllegalArgumentException: expecting IdClass mapping

**URL:** <https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896>\
**Category:** Hibernate ORM\
**Created:** [January 23, 2024, 9:06pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896 "2024-01-23T21:06:40Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![SR\_Gade](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/sr_gade/32/2956_2.png) [@SR\_Gade](https://discourse.hibernate.org/u/SR_Gade)\
**Post date:** [January 23, 2024, 9:06pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/1 "2024-01-23T21:06:40Z")

</div>

Hi We upgraded spring orm from 4.2.9 to 5.0.8 and Hibernate from 5.1.1 to 5.6.15  
and still using hbm.xml files for mapping and not using annotations.  
Replaced the org.springframework.orm.hibernate4.LocalSessionFactoryBean with  
org.springframework.orm.hibernate5.LocalSessionFactoryBean.

During runtime/deployment getting following error, your help is appreciated:

Context initialization failed  
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘indexController’: Injection of r  
esource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException:  
Error creating bean with name ‘userServiceImpl’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException:  
Error creating bean with name ‘xxDao’: Injection of resource dependencies failed;  
nested exception is org.springframework.beans.factory.BeanCreationException:  
Error creating bean with name ‘xxSessionFactory’ defined in URL [zip:/u01/app/oracle/user\_projects/domains/xx/tmp/\_WL\_user/xx/ysyoyi/APP-INF/lib/xxx.jar!/spring/hibernate.xml]:  
Invocation of init method failed; nested exception is  
java.lang.IllegalArgumentException: expecting IdClass mapping

---

<div class="post-metadata">

**Author:** ![beikov](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/beikov/32/258_2.png) [@beikov](https://discourse.hibernate.org/u/beikov)\
**Post date:** [January 24, 2024, 1:52pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/2 "2024-01-24T13:52:59Z")

</div>

Please share the full stack trace and the hbm.xml mapping.

---

<div class="post-metadata">

**Author:** ![SR\_Gade](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/sr_gade/32/2956_2.png) [@SR\_Gade](https://discourse.hibernate.org/u/SR_Gade)\
**Post date:** [January 24, 2024, 5:15pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/3 "2024-01-24T17:15:46Z")

</div>

## Here is the hbm.xml mapping from spring hibernate configuration file:

```
<bean name="postInsertEventListener" class="gov.va.med.pharmacy.pecs.persistence.event.hibernate.PostInsertEventListener" />

<bean name="postLoadEventListener" class="gov.va.med.pharmacy.pecs.persistence.event.hibernate.PostLoadEventListener">
    <property name="drugConceptDao" ref="drugConceptDao" />
</bean>

<bean name="postUpdateEventListener" class="gov.va.med.pharmacy.pecs.persistence.event.hibernate.PostUpdateEventListener" />

<bean id="pecsSessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name="mappingLocations">
        <list>
            <value>classpath*:hibernate/va/*.hbm.xml</value>
            <value>classpath*:hibernate/fdb/FdbMonographDdimLite.hbm.xml</value>
            <value>classpath*:hibernate/fdb/FdbDuplicatetherapy.hbm.xml</value>
            <value>classpath*:hibernate/fdb/FdbMonographDdim.hbm.xml</value>
            <value>classpath*:hibernate/fdb/FdbDdiminteraction.hbm.xml</value>
            <value>classpath*:hibernate/fdb/FdbDosetype.hbm.xml</value>
            <value>classpath*:hibernate/fdb/FdbDoseroute.hbm.xml</value>
            <value>classpath*:hibernate/fdb/FdbDosing.hbm.xml</value>
            <value>classpath*:hibernate/fdb/RoutedGenericFDB.hbm.xml</value>
            <value>classpath*:hibernate/fdb/RoutedGenericFDBLite.hbm.xml</value>
        </list>
    </property>
    
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">
                org.hibernate.dialect.Oracle10gDialect
            </prop>
            <prop key="hibernate.format_sql">true</prop>
            <prop key="hibernate.order_updates">true</prop>
            <prop key="hibernate.show_sql">false</prop>
            <prop key="hibernate.transaction.manager_lookup_class">
                org.hibernate.transaction.WeblogicTransactionManagerLookup
            </prop>
            <prop key="hibernate.transaction.jta.platform">org.hibernate.service.jta.platform.internal.WeblogicJtaPlatform</prop>
            <prop key="hibernate.current_session_context_class">jta</prop>
            <!-- Enable the second-level cache -->
            <prop key="hibernate.cache.use_second_level_cache">true</prop>
            <prop key="hibernate.cache.use_query_cache">true</prop>
            <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
            <prop key="net.sf.ehcache.configurationResourceName">ehcache.xml</prop>
            <prop key="hibernate.jdbc.fetch_size">30</prop>
            <prop key="hibernate.jdbc.batch_size">30</prop>
            
            <!--
            Set to false upon upgrade from v4.3 to v5.0 to keep existing behavior. Must eventually change to "true"
            to move away from deprecated generators.
            -->
            <prop key="hibernate.id.new_generator_mappings">false</prop>
            
            <!-- 
            Set this to "legacy-hbm" upon upgrade
            from Hibernate v4.3 to v5.0 to keep existing behavior.Future PECS versions should remove this setting
            after confirming that doing so will not cause any harm.
            -->
            <prop key="hibernate.implicit_naming_strategy">legacy-hbm</prop>
            <prop key="hibernate.jpa.compliance.global_id_generators">false</prop>
            <prop key="hibernate.id.generator.stored_last_used ">false</prop>
        </props>
    </property>
    <property name="dataSource">
        <ref bean="pecsDataSource" />
    </property>
<!-- <property name="eventListeners"> <map> <entry key="post-insert" value-ref="postInsertEventListener" 
    /> <entry key="post-load" value-ref="postLoadEventListener" /> <entry key="post-update" 
    value-ref="postUpdateEventListener" /> </map> </property> -->
</bean>

<bean id="fdbDifSessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name="mappingLocations">
        <list>
            <value>classpath*:hibernate/fdb/*.hbm.xml</value>
            <value>classpath*:hibernate/va/UserComment.hbm.xml</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">
                org.hibernate.dialect.Oracle10gDialect
            </prop>
            <prop key="hibernate.format_sql">true</prop>
            <prop key="hibernate.order_updates">true</prop>
            <prop key="hibernate.show_sql">false</prop>
            <prop key="hibernate.transaction.manager_lookup_class">
                org.hibernate.transaction.WeblogicTransactionManagerLookup
            </prop>
            <prop key="hibernate.transaction.jta.platform">org.hibernate.service.jta.platform.internal.WeblogicJtaPlatform</prop>
            <prop key="hibernate.cache.use_second_level_cache">true</prop>
            <prop key="hibernate.cache.use_query_cache">true</prop>
            <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
            <prop key="net.sf.ehcache.configurationResourceName">ehcache-fdb.xml</prop>
                        
                         <!-- Set to false upon upgrade from v4.3 to v5.0 to keep existing behavior. Must eventually change to "true"
            to move away from deprecated generators.
            -->
            <prop key="hibernate.id.new_generator_mappings">false</prop>
            
            <!-- 
            Set this to "legacy-hbm" upon upgrade
            from Hibernate v4.3 to v5.0 to keep existing behavior.Future PECS versions should remove this setting
            after confirming that doing so will not cause any harm.
            -->
            <prop key="hibernate.implicit_naming_strategy">legacy-hbm</prop>
            <prop key="hibernate.jpa.compliance.global_id_generators">false</prop>
            <prop key="hibernate.id.generator.stored_last_used ">false</prop>
        </props>
    </property>
    <property name="dataSource">
        <ref bean="fdbDifDataSource" />
    </property>
    <!-- <property name="eventListeners">
        <map>
            <entry key="post-load" value-ref="postLoadEventListener" />
        </map>
    </property> -->
</bean>

```

## Here is the stack trace:

Exception encountered during context initialization - cancelling refresh attemp  
t: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘indexController’: Injection o  
f resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creat  
ing bean with name ‘userServiceImpl’: Injection of resource dependencies failed; nested exception is org.springframework  
.beans.factory.BeanCreationException: Error creating bean with name ‘userDAO’: Injection of resource dependencies failed  
; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘pecsSessio  
nFactory’ defined in URL [zip:/u01/app/oracle/user\_projects/domains/pecs/servers/pecs\_ms01/tmp/\_WL\_user/pecs-6.2.5.001/y  
syoyi/APP-INF/lib/ps\_pecs\_persistence.jar!/spring/hibernate.xml]: Invocation of init method failed; nested exception is  
java.lang.IllegalArgumentException: expecting IdClass mapping\>  
####\<Jan 24, 2024 9:51:31,105 AM CST\> \<org.springframework.web.context.ContextLoader\> \<[vaausapppec800.aac.va.gov](http://vaausapppec800.aac.va.gov)

> \<pecs\_ms01\> \<[ACTIVE] ExecuteThread: ‘3’ for queue: ‘weblogic.kernel.Default (self-tuning)’\> \<\> \<cf5f2547-d275  
> -467b-bf80-167f3d405e29-00000153\> \<1706111491105\> \<[severity-value: 8] [rid: 0] [partition-id: 0] [partition-name: DOMAI  
> N] \> \<Context initialization failed  
> org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘indexController’: Injection of r  
> esource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating  
> bean with name ‘userServiceImpl’: Injection of resource dependencies failed; nested exception is org.springframework.be  
> ans.factory.BeanCreationException: Error creating bean with name ‘userDAO’: Injection of resource dependencies failed; n  
> ested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘pecsSessionFa  
> ctory’ defined in URL [zip:/u01/app/oracle/user\_projects/domains/pecs/servers/pecs\_ms01/tmp/\_WL\_user/pecs-6.2.5.001/ysyo  
> yi/APP-INF/lib/ps\_pecs\_persistence.jar!/spring/hibernate.xml]: Invocation of init method failed; nested exception is jav  
> a.lang.IllegalArgumentException: expecting IdClass mapping  
> at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnno  
> tationBeanPostProcessor.java:321)  
> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCap  
> ableBeanFactory.java:1341)  
> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCap  
> ableBeanFactory.java:572)  
> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapab  
> leBeanFactory.java:495)  
> at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317  
> )  
> at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegis  
> try.java:222)  
> at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)  
> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)  
> at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListable  
> BeanFactory.java:759)  
> at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplic  
> ationContext.java:869)  
> at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)  
> at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444  
> )  
> at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)  
> at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)  
> at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:719)  
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:344)

---

<div class="post-metadata">

**Author:** ![beikov](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/beikov/32/258_2.png) [@beikov](https://discourse.hibernate.org/u/beikov)\
**Post date:** [January 24, 2024, 6:30pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/4 "2024-01-24T18:30:45Z")

</div>

The stack trace is still missing the relevant stack frames that point to the Hibernate ORM source code of where the exception originate.  
Also, what you posted is your Spring configuration file, but what I need to see is the hbm.xml mapping for the entity which causes this exception.

---

<div class="post-metadata">

**Author:** ![SR\_Gade](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/sr_gade/32/2956_2.png) [@SR\_Gade](https://discourse.hibernate.org/u/SR_Gade)\
**Post date:** [January 25, 2024, 3:43pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/5 "2024-01-25T15:43:52Z")

</div>

Here is the stack trace, exception is occurring when sessionfactory bean is being created…expecting idclass mapping

####\<Jan 24, 2024 10:16:03,356 PM CST\> \<org.springframework.web.context.ContextLoader\> \<[vaausapppec800.aac.va.gov](http://vaausapppec800.aac.va.gov)\> \<pecs\_ms01\> \<[ACTIVE] ExecuteThread: ‘4’ for queue: ‘weblogic.kernel.Default (self-tuning)’\> \<\> \<45cc23b1-5219-4f37-be8f-7dd352146d1e-00000014\> \<1706156163356\> \<[severity-value: 8] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] \> \<Context initialization failed

org.springframework.beans.factory.BeanCreationException:  
Error creating bean with name ‘indexController’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘userServiceImpl’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException:

Error creating bean with name ‘userDAO’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘pecsSessionFactory’ defined in URL  
[zip:/u01/app/oracle/user\_projects/domains/pecs/servers/pecs\_ms01/tmp/\_WL\_user/pecs-6.2.5.001/ysyoyi/APP-INF/lib/ps\_pecs\_persistence.jar!  
/spring/hibernate.xml]:  
Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: expecting IdClass mapping  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)  
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)  
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)  
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)  
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)  
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)  
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)  
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)  
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)  
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:719)  
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:344)  
at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)  
at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)  
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)  
at weblogic.servlet.internal.EventsManager.executeContextListener(EventsManager.java:251)  
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:204)  
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:189)  
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1929)  
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3194)  
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1877)  
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:932)  
at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360)  
at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356)  
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)  
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138)  
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)  
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:233)  
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:228)  
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)  
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:78)  
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:52)  
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:752)  
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)  
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:262)  
at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:66)  
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)  
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:90)  
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:631)  
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:171)  
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:121)  
at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:151)  
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:348)  
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:907)  
at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1468)  
at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:459)  
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:181)  
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:217)  
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:14)  
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:69)  
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:681)  
at weblogic.invocation.ComponentInvocationContextManager.\_runAs(ComponentInvocationContextManager.java:352)  
at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)  
at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)  
at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)  
at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:655)  
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420)  
at weblogic.work.ExecuteThread.run(ExecuteThread.java:360)

---

<div class="post-metadata">

**Author:** ![beikov](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/beikov/32/258_2.png) [@beikov](https://discourse.hibernate.org/u/beikov)\
**Post date:** [January 25, 2024, 6:09pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/6 "2024-01-25T18:09:17Z")

</div>

This is still not the stack trace that I need, the essential part is cut off.

---

<div class="post-metadata">

**Author:** ![SR\_Gade](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/sr_gade/32/2956_2.png) [@SR\_Gade](https://discourse.hibernate.org/u/SR_Gade)\
**Post date:** [January 25, 2024, 6:15pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/7 "2024-01-25T18:15:42Z")

</div>

####\<Jan 24, 2024 10:16:02,728 PM CST\> \<org.hibernate.orm.cache\> \<\> \<xxx\_ms01\> \<[ACTIVE] ExecuteThread: ‘4’ for queue: ‘weblogic.kernel.Default (self-tuning)’\> \<\> \<45cc23b1-5219-4f37-be8f-7dd352146d1e-00000014\> \<1706156162728\> \<[severity-value: 16] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] \> \<HHH90001006: Missing cache[gov.va.med.pharmacy.xxx.state.Status] was created on-the-fly. The created cache will use a provider-specific default configuration: make sure you defined one. You can disable this warning by setting ‘hibernate.cache.ehcache.missing\_cache\_strategy’ to ‘create’.\>

####\<Jan 24, 2024 10:16:03,353 PM CST\> \<org.springframework.web.context.support.XmlWebApplicationContext\> \<[vaausapppecxxx.aac.va.gov](http://vaausapppecxxx.aac.va.gov)\> \<xxx\_ms01\> \<[ACTIVE] ExecuteThread: ‘4’ for queue: ‘weblogic.kernel.Default (self-tuning)’\> \<\> \<45cc23b1-5219-4f37-be8f-7dd352146d1e-00000014\> \<1706156163353\> \<[severity-value: 16] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] \>

\<Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException:  
Error creating bean with name ‘indexController’: Injection of resource dependencies failed;

nested exception is org.springframework.beans.factory.BeanCreationException:  
Error creating bean with name ‘userServiceImpl’: Injection of resource dependencies failed;

nested exception is org.springframework.beans.factory.BeanCreationException:  
Error creating bean with name ‘userDAO’: Injection of resource dependencies failed;

nested exception is org.springframework.beans.factory.BeanCreationException:  
Error creating bean with name ‘xxxSessionFactory’ defined in URL  
[zip:/u01/app/oracle/user\_projects/domains/xxx/servers/xxx\_ms01/tmp/\_WL\_user/xxx-6.2.5.001/ysyoyi/APP-INF/lib/ps\_xxx\_persistence.jar!  
/spring/hibernate.xml]:

Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: expecting IdClass mapping\>

####\<Jan 24, 2024 10:16:03,356 PM CST\> \<org.springframework.web.context.ContextLoader\> \<[vaausapppecxxx.aac.va.gov](http://vaausapppecxxx.aac.va.gov)\> \<xxx\_ms01\> \<[ACTIVE] ExecuteThread: ‘4’ for queue: ‘weblogic.kernel.Default (self-tuning)’\> \<\> \<45cc23b1-5219-4f37-be8f-7dd352146d1e-00000014\> \<1706156163356\> \<[severity-value: 8] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] \> \<Context initialization failed

org.springframework.beans.factory.BeanCreationException:  
Error creating bean with name ‘indexController’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘userServiceImpl’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException:

Error creating bean with name ‘userDAO’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘xxxSessionFactory’ defined in URL  
[zip:/u01/app/oracle/user\_projects/domains/xxx/servers/xxx\_ms01/tmp/\_WL\_user/xxx-6.2.5.001/ysyoyi/APP-INF/lib/ps\_xxx\_persistence.jar!  
/spring/hibernate.xml]:  
Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: expecting IdClass mapping  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)  
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)  
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)  
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)  
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)  
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)  
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)  
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)  
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)  
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:719)  
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:344)  
at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)  
at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)  
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)  
at weblogic.servlet.internal.EventsManager.executeContextListener(EventsManager.java:251)  
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:204)  
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:189)  
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1929)  
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3194)  
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1877)  
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:932)  
at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360)  
at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356)  
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)  
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138)  
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)  
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:233)  
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:228)  
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)  
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:78)  
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:52)  
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:752)  
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)  
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:262)  
at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:66)  
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)  
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:90)  
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:631)  
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:171)  
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:121)  
at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:151)  
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:348)  
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:907)  
at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1468)  
at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:459)  
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:181)  
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:217)  
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:14)  
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:69)  
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:681)  
at weblogic.invocation.ComponentInvocationContextManager.\_runAs(ComponentInvocationContextManager.java:352)  
at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)  
at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)  
at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)  
at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:655)  
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420)  
at weblogic.work.ExecuteThread.run(ExecuteThread.java:360)

Caused By: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘userServiceImpl’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘userDAO’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘xxxSessionFactory’ defined in URL [zip:/u01/app/oracle/user\_projects/domains/xxx/servers/xxx\_ms01/tmp/\_WL\_user/xxx-6.2.5.001/ysyoyi/APP-INF/lib/ps\_xxx\_persistence.jar!/spring/hibernate.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: expecting IdClass mapping  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)  
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)  
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)  
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)  
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1135)  
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062)  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:507)  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:485)  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:619)  
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)  
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)  
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)  
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)  
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)  
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)  
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)  
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)  
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)  
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)  
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:719)  
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:344)  
at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)  
at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)  
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)  
at weblogic.servlet.internal.EventsManager.executeContextListener(EventsManager.java:251)  
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:204)  
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:189)  
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1929)  
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3194)  
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1877)  
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:932)  
at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360)  
at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356)  
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)  
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138)  
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)  
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:233)  
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:228)  
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)  
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:78)  
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:52)  
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:752)  
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)  
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:262)  
at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:66)  
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)  
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:90)  
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:631)  
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:171)  
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:121)  
at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:151)  
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:348)  
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:907)  
at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1468)  
at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:459)  
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:181)  
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:217)  
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:14)  
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:69)  
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:681)  
at weblogic.invocation.ComponentInvocationContextManager.\_runAs(ComponentInvocationContextManager.java:352)  
at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)  
at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)  
at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)  
at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:655)  
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420)  
at weblogic.work.ExecuteThread.run(ExecuteThread.java:360)  
Caused By: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘userDAO’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘xxxSessionFactory’ defined in URL [zip:/u01/app/oracle/user\_projects/domains/xxx/servers/xxx\_ms01/tmp/\_WL\_user/xxx-6.2.5.001/ysyoyi/APP-INF/lib/ps\_xxx\_persistence.jar!/spring/hibernate.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: expecting IdClass mapping  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)  
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)  
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:514)  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:485)  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:619)  
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)  
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)  
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)  
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)  
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)  
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1135)  
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062)  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:507)  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:485)  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:619)  
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)  
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)  
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)  
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)  
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)  
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)  
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)  
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)  
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)  
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)  
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)  
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:719)  
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:344)  
at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)  
at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)  
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)  
at weblogic.servlet.internal.EventsManager.executeContextListener(EventsManager.java:251)  
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:204)  
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:189)  
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1929)  
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3194)  
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1877)  
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:932)  
at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360)  
at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356)  
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)  
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138)  
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)  
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:233)  
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:228)  
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)  
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:78)  
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:52)  
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:752)  
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)  
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:262)  
at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:66)  
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)  
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:90)  
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:631)  
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:171)  
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:121)  
at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:151)  
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:348)  
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:907)  
at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1468)  
at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:459)  
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:181)  
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:217)  
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:14)  
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:69)  
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:681)  
at weblogic.invocation.ComponentInvocationContextManager.\_runAs(ComponentInvocationContextManager.java:352)  
at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)  
at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)  
at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)  
at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:655)  
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420)  
at weblogic.work.ExecuteThread.run(ExecuteThread.java:360)

---

<div class="post-metadata">

**Author:** ![beikov](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/beikov/32/258_2.png) [@beikov](https://discourse.hibernate.org/u/beikov)\
**Post date:** [January 25, 2024, 6:27pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/8 "2024-01-25T18:27:24Z")

</div>

The correct stack trace should contain stack frames that point to the `org.hibernate.metamodel.internal.AttributeFactory` class

---

<div class="post-metadata">

**Author:** ![SR\_Gade](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/sr_gade/32/2956_2.png) [@SR\_Gade](https://discourse.hibernate.org/u/SR_Gade)\
**Post date:** [January 25, 2024, 7:09pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/9 "2024-01-25T19:09:55Z")

</div>

Caused By: java.lang.IllegalArgumentException: expecting IdClass mapping  
at org.hibernate.metamodel.internal.AttributeFactory$3.resolveMember(AttributeFactory.java:1023)  
at org.hibernate.metamodel.internal.AttributeFactory$5.resolveMember(AttributeFactory.java:1081)  
at org.hibernate.metamodel.internal.AttributeFactory.determineAttributeMetadata(AttributeFactory.java:496)  
at org.hibernate.metamodel.internal.AttributeFactory.buildIdAttribute(AttributeFactory.java:181)  
at org.hibernate.metamodel.internal.MetadataContext.buildIdClassAttributes(MetadataContext.java:414)  
at org.hibernate.metamodel.internal.MetadataContext.applyIdMetadata(MetadataContext.java:344)  
at org.hibernate.metamodel.internal.MetadataContext.wrapUp(MetadataContext.java:247)  
at org.hibernate.metamodel.internal.MetamodelImpl.initialize(MetamodelImpl.java:275)  
at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:319)  
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471)  
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:728)  
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:746)  
at org.springframework.orm.hibernate5.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:533)  
at org.springframework.orm.hibernate5.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:517)

---

<div class="post-metadata">

**Author:** ![beikov](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/beikov/32/258_2.png) [@beikov](https://discourse.hibernate.org/u/beikov)\
**Post date:** [January 26, 2024, 10:46am UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/10 "2024-01-26T10:46:07Z")

</div>

Now, please set a debug break point at `AttributeFactory` on line 1023 and figure out for which entity this error happens. Finally, please post the hbm.xml contents for that entity.

---

<div class="post-metadata">

**Author:** ![SR\_Gade](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/sr_gade/32/2956_2.png) [@SR\_Gade](https://discourse.hibernate.org/u/SR_Gade)\
**Post date:** [January 28, 2024, 4:00pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/11 "2024-01-28T16:00:52Z")

</div>

Error does not specify exactly which hbm.xml file is throwing error.  
It looks like Hibernate is expecting IdClass annotation even though my legacy code does not use annotations at all, we are still using hbm.xml files that has composite-ids.  
I am not understanding why it is expecting annotations ?  
Example of hbm.xml file:

\<?xml version="1.0" encoding="utf-8"?\>

---

<div class="post-metadata">

**Author:** ![beikov](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/beikov/32/258_2.png) [@beikov](https://discourse.hibernate.org/u/beikov)\
**Post date:** [January 29, 2024, 10:14am UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/12 "2024-01-29T10:14:09Z")

</div>

If you set the break point where I suggested, you can go to earlier stack frames and figure out for which entity this method was called. Without that information, nobody can help you.

---

<div class="post-metadata">

**Author:** ![SR\_Gade](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/sr_gade/32/2956_2.png) [@SR\_Gade](https://discourse.hibernate.org/u/SR_Gade)\
**Post date:** [January 29, 2024, 1:55pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/13 "2024-01-29T13:55:49Z")

</div>

I understand what you are saying.But my question is why it is expecting annotations (IdClass) in regular pojo classes ?

---

<div class="post-metadata">

**Author:** ![beikov](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/beikov/32/258_2.png) [@beikov](https://discourse.hibernate.org/u/beikov)\
**Post date:** [January 29, 2024, 2:37pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/14 "2024-01-29T14:37:50Z")

</div>

This exception happens when instantiating the JPA static metamodel, which as you can imagine, is **not** specially implemented for every mapping source. Hibernate ORM uses the same code paths and since annotation mapping is the most common, encountered errors will refer to the annotation mapping parts in their exception message.

---

<div class="post-metadata">

**Author:** ![SR\_Gade](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/sr_gade/32/2956_2.png) [@SR\_Gade](https://discourse.hibernate.org/u/SR_Gade)\
**Post date:** [January 29, 2024, 5:32pm UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/15 "2024-01-29T17:32:15Z")

</div>

Thank you for your help, figured out the issue.One of the hbm.xml file does not have the name attribute for composite-id, that seems to be causing the issue.

---

<div class="post-metadata">

**Author:** ![beikov](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/beikov/32/258_2.png) [@beikov](https://discourse.hibernate.org/u/beikov)\
**Post date:** [January 30, 2024, 10:39am UTC](https://discourse.hibernate.org/t/jav-a-lang-illegalargumentexception-expecting-idclass-mapping/8896/16 "2024-01-30T10:39:42Z")

</div>

Please share the relevant hbm.xml fragments that you had before and show what you changed so that others that run into this issue might possibly also benefit from this discussion.
