我遇到了一個自己無法解決的問題,因此,我在尋求你的幫助。問題如下: 我們必須升級持久層。以前的項目使用JDBC來訪問數據,但現在它應該使用JPA。這意味着現在數據是在新對象中檢索的,但系統可以與舊對象一起工作。因此,我們應該在舊實體和新實體之間編寫一些轉換器。但問題是,有時從舊的形成新的實體,我們需要一些額外的信息。例如:製作目標轉換器的最佳做法
class OldEntity{
private int id;
// old entity contains only foreign key
private int otherEntityId;
...
}
class NewEntity{
private int id;
// new entity contains object that associated with foreign key
private OtherEntity otherEntity;
...
}
我們希望將一些通用接口添加到所有轉換器,但如果我們從舊實體到新的轉變,首先,我們應該通過ID檢索「otherEntity」,並給它的轉換器。由於我們有很多具有不同結構的實體,轉換器的方法應該接收各種不同的參數以形成新的實體。 問題是:是否有任何針對此類問題的良好體系結構解決方案?
你打算如何獲得更多信息?彈出一個對話框給用戶? – 2012-04-03 03:22:27
不會。它將通過外鍵值從數據庫中檢索。就像例子中的類一樣:我們在舊實體中只有外鍵值,並且希望在新的實體中填充由它的id檢索的整個對象。我認爲在轉換器方法中檢索它是個壞主意,所以,我正在尋找更好的方法將這樣的檢索對象提供給適當的轉換器方法。 – 2012-04-03 03:41:07
您確定沒有辦法配置映射,以便生成舊實體並且不需要轉換器嗎? – 2012-04-03 03:47:54