我正在使用Hibernate,並且我有一個流程/最佳實踐問題。舉一個例子,假設我們有兩個實體卡車和車輪。該車輪有2個屬性wheelid和wheelmanufacturer。因此,在我的應用程序中,用戶可以創建卡車,他們可以選擇數據庫中存在的各種車輪或創建他們自己的車輪。使用休眠服務的最佳實踐
我的問題是,當我收到來自前端卡車對象,如何讓我相信,如果車輪不存在於數據庫中,該數據庫副本使用,如果它不存在於數據庫中,它被添加。這裏是我的服務現在
public Truck saveTruck(Truck truck)
{
//Yes, this is a two-wheel truck =)
Wheel frontWheel = truck.getFrontWheel();
if(frontWheel != null && frontWheel.getWheelId() != null)
{
Wheel dbWheel = wheelDao.getWheelById(frontWheel.getWheelId());
if(dbWheel != null)
{
truck.setFrontWheel(dbWheel);
}
}
}
這樣做的動機是,我不希望用戶能夠覆蓋數據庫中的對象是如何工作的一個基本的例子,但他們需要的是能寫自定義的。上面的代碼有效,但如果你有一輛擁有10個屬性的卡車,它就變得非常多餘。我想知道別人怎麼解決這個問題。
感謝
我認爲合併將涉及解決方案。在通過stackoverflow提供的幫助之後,我想我只需要開拓進取。整個「保存」,「更新」,「合併」範式之間存在很多細微差別,我覺得我可以學習的唯一方式就是受到傷害,並且差異打擊了你。 – 2011-02-04 18:20:37