我正在構建一個Spring MVC Web應用程序,它使用JPA/Hibernate來存儲對象。我有一個問題被視爲域對象,以及如何正確使用它們。有一些具有依賴性的域對象。一個示例可以是具有分配給它的區域實體的公司實體。Java Spring,使用域對象
我有一個簡單的輔助類這是我從控制器,它的任務是基於內容讀取URL地址的XML文件,分析其內容,並返回新公司的對象類調用。
class MyCustomHelper {
MyCustomService myCustomService;
//I have to pass myCustomService to be able to fetch existing Region entities from db
public MyCustomHelper(MyCustomService myCustomService){
this.myCustomService = myCustomService;
}
public Company createCompanyObjectFromUrl(){
//I get these values via xml parser in the app
String name = "Company name";
String address = "Address of a company";
Integer regionId = 19;
//Create new instance of entity and fill it with data
Company company = new Company();
company.setName(name);
company.setAddress(address);
//Assign already existing region to new Company
Region region = this.myCustomService.findOneRegion(regionId);
company.setRegion(region);
return company;
}
}
這種方法的工作原理,但我不知道這是否是正確的或錯誤的設計。如果我的公司對象只是普通對象而沒有任何依賴關係,那麼創建新公司將很容易,併爲其設置String和Integer值。但這不是一個例子。
創建新公司時,我還必須創建與現有區域的連接。我通過在我的幫助器的構造函數中傳遞一個服務對象來完成它,它從數據庫中獲取現有的區域。
一旦一個新的公司被傳遞迴控制器,還有就是設置它的一些其他的屬性,然後將其保存到數據庫中。
我有一種感覺,這不是(通過服務實例的輔助類)一個非常好的方法。也許在助手中創建某種DTO對象會更乾淨,將其返回給控制器,然後將其映射到Domain對象。
或者它只是好嗎?