聯合主鍵配置時忽略的問題composite-id class must implement Serializable

運行程序報錯:

Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxxxDao' defined in file [D:\WorkSpace\xxx\xxx\webapp\WEB-INF\classes\com\xxx\xxx\xxx\config\spring-webmanage.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [jar:file:/D:/WorkSpace/xxx/xxx/webapp/WEB-INF/lib/xxx.jar!/spring-base.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException:composite-id class must implement Serializable: com.xxx.xxx.xxx.pojo.Organization
 at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
 at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

……

 

這一段中,最重要的錯誤提示是“composite-id class must implement Serializable:

是因爲在映射文件.hbm.xml中定義爲聯合主鍵,即用<composite-id>

<composite-id>  

   <key-property name="pid" type="java.lang.String">  

         <column name="PID" />  

   </key-property>  

   <key-property name="cid" type="java.lang.String">  

         <column name="CID" />  

   </key-property>  

  </composite-id>

 

解決辦法:

使用聯合主鍵時,bean類必須序列化

import java.io.Serializable;

public classBean implements Serializable {

    private static final long serialVersionUID = 1L;

}

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章