1. ホーム
  2. ジャワ

主共有鍵の設定時に無視される問題combined-idクラスはSerializableを実装しなければならない

2022-02-27 15:55:05

エラーでプログラムを実行する

コンテキストの初期化に失敗しました
BeansCreationException: Error creating bean with name 'xxxxDao' defined in file [D:\WorkSpacexxx╱WEBapp╱Classes╱comxxx╱config↪Spring-webmanage.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException.BeanCreationException は、ビーンプロパティ 'sessionFactory' の設定中にビーン 'sessionFactory' への参照を解決できません。URL [jar:file:/D:/WorkSpace/xxx/xxx/webapp/WEB-INF/lib/xxx.jar!/spring-base.xml] で定義された名前 ' sessionFactory' を持つビーンの作成に失敗しています。init メソッドの呼び出しに失敗しました。ネストされた例外は org.hibernate.MappingException です。 composite -id クラスは Serializable を実装する必要があります。 組織
org.springframework.beans.factory.support.BeanDefinitionValueResol で。 ver.resolveReference(BeanDefinitionValueResol)です。 ver.java:328)
org.springframework.beans.factory.support.BeanDefinitionValueResol で。 ver.resolveValueIfNecessary(BeanDefinitionValueResol) ver.java:106)

<スパン ......

<スパン

<スパン

この段落で最も重要なエラーメッセージは、" です。 composite-id クラスは Serializable を実装する必要があります。 "です。

マッピングファイル .hbm.xml でジョイントプライマリーキーとして定義されているため、つまり <composite-id> で定義されているためです。

<composite-id> 

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

列  name="PID"  /> 

</key-property> 

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

列  name="CID"  /> 

</key-property> 

</composite-id>

<スパン 解決策

フェデレートされた主キーを使用する場合、Bean クラスをシリアライズする必要があります。

インポート java.io.Serializable。

public classBean implements Serializable { (パブリッククラスビーンインプリメンツシリアライザブル) <未定義

private static final long serialVersionUID = 1L;

}