次の関係に問題があります。
@Entity
public class Account {
@OneToMany
private Map<SomeEntity, WrapperEntity> myMap;
// getter, setters, etc.
}
ラッパー エンティティの場合:
@Entity
public class WrapperEntity {
@OneToMany
private Set<SomeOtherEntity> otherEntities;
}
これを実行しようとすると、EclipseLink の例外が発生します。
Exception [EclipseLink-93] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The table [WRAPPERENTITY] is not present in this descriptor.
しかし、関係を双方向にmappedBy
して Account クラスに追加すると、プロジェクトが実行されます。この動作は意図したものですか? 私は何かを見落としていますか?
双方向の関係を使用する場合、別の考えは奇妙に思えます。テーブルが不完全な方法で埋められていると思います。テーブルWrapperEntity
には列がmyMap_key
あり、対応するマップ エントリを保存すると何も格納されません。eclipselink でバグを探しましたが、似たようなものは見つかりませんでした。