2011-07-09 165 views
1

我有一個具有版本的實體。它具有複合主鍵,其中一部分是實體的ID,另一部分是版本。我想創建多對一的映射到這個實體,我需要在這個映射的許多方面有最新版本。休眠映射到版本實體

例如:

@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支持的版本。您可能需要查看並將其併入您的設計,而不是嘗試製作自己的版本控制方案。