簡體   English   中英

Spring MVC:@ManyToMany DAO?

[英]Spring MVC: @ManyToMany DAO?

在我的應用程序中,我嘗試按照本教程創建帶有其他字段的多對多關系:

休眠一對多一對多,例如聯接表,柱外的注釋

我想知道有關將DAO方法放置在與此關系相關的最佳方法方面的最佳實踐。

最好為該關聯創建一個特定的域(例如StockCategoryDAO)或將這些方法放入StockDAO /類別中?

例如,我對此感到困惑:

例1-一種給我所有與類別相關的股票的方法...我不需要,因為我已經在類別模型類中擁有吸氣劑 ...對嗎?

示例2-我將在“股票”面板下有一個頁面,我將在其中選擇(復選框)與該股票相關聯的類別(該股票已存在於db中)。
提交后,在控制器中,我得到所有選中的復選框(如果您知道如何執行此操作的示例,歡迎您),並且我必須調用服務方法(封裝了我的dao)以插入關聯。
在這種情況下,最好是使用Stock類的設置器,然后使用session.update(stock)或對所選的每個類別使用StockCategoryService.addCategoryService(...)?

感謝您的任何建議

我認為基本設計應該是“每個模型類都應具有自己的DAO類,該類具有定義的,在該特定模型上運行的所有方法”。 這也包括所有吸氣劑。

DAO方法基於模型。

因此,您需要將Stock的所有getter方法放入StockDAO類。

如果您使用的是jdbctemplate並且要返回自定義對象,則可以將RowMapper類定義為DAO類中的內部類。

我建議您使用JdbcTemplate類。 這樣可以最小化DAO類中的代碼。

在這里,我列出了執行此實現的步驟:

  1. 在spring.xml中聲明JdbcTemplate bean,並將數據源bean作為jdbcTemplate bean的屬性注入

(因此,在初始化過程中,本身使用正確的datasurce創建了JdbcTemplate)

  1. 為每個模型實現DAO類。 在DAO類中定義所有方法(包括getter)。

  2. 如果您的getter方法返回自定義對象,請在DAO類中將rowMapper類實現為內部類。 (實現rowMapper可以使jdbcTemplate了解結果集)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM