2014-02-28 75 views
0

我有兩個互爲鏡像的數據庫表。原因是一個表存儲「CURRENT」值,其他表保存「ARCHIVED」值。我使用休眠作爲ORM工具。這些表格各有20列。業務要求是「當前」表中的值以特定的時間間隔存放在「歸檔」表中。將「當前」對象的值複製到「歸檔」對象是很麻煩的。在JAVA中有沒有辦法克隆不同類型的對象(當前對象到歸檔對象)?對象的元素是相同的。在Java中克隆不同的對象

+1

這裏有'Cloneable',但實際上,這是一個更好的工作,留給數據庫中的存儲過程。它會比任何Java代碼都能達到的效率高得多。 – fge

+0

所以你想讓兩個不同類的實例(沒有直接繼承關係)具有相同的字段(=實例變量)值? –

+0

可複製的是用於相同的類副本。如果我明白這是正確的,那是兩個不同的課程,還是我的錯? – pL4Gu33

回答

2

看一看Apache Commons BeanUtils

它有用的方法,以兩個不同copy properties之間沒有層級關係。只要兩個bean的屬性具有相同的名稱,就應該可以工作。從原點豆到目的地豆爲所有情況下的屬性名稱是相同的

BeanUtils.copyProperties(Object dest, Object orig); 

複製屬性值。

+0

Thnx。會看看。 –

1

我用註釋中提到的fge進行操作,但是,您可以創建一個構造函數並將「當前」對象傳遞給它。

class ArchiveEntry{ 
    private String dummy; 

    public ArchiveEntry(CurrentEntry entry) { 
     this.dummy = entry.getDummy(); 
    } 
} 
+0

Thnx。總的來說,我是在我的DAO代碼中將「當前」對象的屬性複製到「存檔」對象中,這看起來並不美觀。這聽起來像一個好主意。基礎知識,有時我會忘記。再次感謝。乾杯! –

0

看看推土機的mapper框架。使用配置支持深度克隆。