2011-07-09 19 views
1

私はバージョンを持つエンティティを持っています。コンポジットプライマリキーを持ちます。コンビネーションプライマリキーの1つの部分はエンティティのIDで、その他はバージョンです。このエンティティへの多対1のマッピングを作成したいのですが、このマッピングの多くの面で最新のバージョンを用意する必要があります。バージョン管理されたエンティティへのハイバネートマッピング

例えば:

@Entity 
@IdClass(VersionedId.class) 
class SomeVersionedComponent { 
    private Long id; 
    private long version; 
    ... 
} 

@Entity 
class ManyMappingSide { 
    private Long id; 
    private SomeVersionedComponent component; 

    @ManyToOne ///???? 
    public SomeVersionedComponent getComponent() {...} 
    public void setComponent(SomeVersionedComponent component) {...} 
} 

私はManyMapingSideにバージョン情報を保存する必要はありません、私は唯一のIDを持っている必要があり、かつManyMappingSideがロードされたとき、私はSomeVersionedComponentの最新バージョンを持っていると思います。

どうすれば実装できますか?

答えて

2

これは、Hibernate Enversでサポートされているバージョン管理とよく似ています。独自のバージョニングスキームを作成するのではなく、それを見てデザインに組み込むことができます。

関連する問題