DAO方法是否有標準命名約定,類似於JavaBeans?DAO方法的標準命名約定
例如,我見過的一個命名約定是使用get()
返回單個實體,find()
返回實體列表。
如果沒有,你的團隊使用的是什麼?爲什麼?
DAO方法是否有標準命名約定,類似於JavaBeans?DAO方法的標準命名約定
例如,我見過的一個命名約定是使用get()
返回單個實體,find()
返回實體列表。
如果沒有,你的團隊使用的是什麼?爲什麼?
通常我以這樣的方式命名方法,名稱提示將由方法應用的CRUD操作的類型,如add*
,save*
或find*
。
add*
可以INSERT
操作來施加,象addPhoneNumber(Long userId)
。
get*
可應用於SELECT
操作,如getEmailAddress(Long userId)
。
set*
可應用於執行UPDATE
操作的方法。
delete*
可應用於DELETE
作業,如deleteUser(Long userId)
。雖然我不確定物理刪除有多有用。就個人而言,我會設置一個標誌,表示該行不會被使用,而不是執行物理刪除。
is*
可應用於檢查某些內容的方法,例如isUsernameAvailable(String username)
。
我知道公約的類似如下:
開始find
方法執行select
操作和方法的名稱包含搜索條件,如findById
,findByUsername
,findByFirstNameAndLastName
等
修改方法以create
,update
,delete
開頭。
查看Spring Data JPA使用的約定。這是Spring框架的一部分,該框架根據基於命名約定檢查方法名稱來自動編寫DAO。
get()
對於單個實體似乎不是一個好選擇,因爲get是Java開發人員與Java bean getter相關聯的。
非常贊同:發現比獲得更好(它總是讓我想到一個吸氣劑)。也非常適合在方法名稱中添加搜索條件。 –
你要退回F.Promise
我personnaly還使用findAll *等方法上的描述性名稱來添加更多的意圖信息 –
去DAO層時,我們不應該使用與模型中相同的命名。而不是'get'使用'find',而不是'set'和'add'使用'update'。儘可能地嘗試更多的面向對象傳遞模型對象,特別是更新方法。 –