是否有类似于JavaBeans的DAO方法的标准命名约定?
例如,我见过的一种命名约定是使用get()
来返回单个实体,使用find()
来返回实体列表。
如果没有标准命名约定,那么你的团队使用的是什么,为什么?
是否有类似于JavaBeans的DAO方法的标准命名约定?
例如,我见过的一种命名约定是使用get()
来返回单个实体,使用find()
来返回实体列表。
如果没有标准命名约定,那么你的团队使用的是什么,为什么?
我知道以下约定:
以find
开头的方法执行select
操作,而方法名包含搜索条件,例如findById
、findByUsername
、findByFirstNameAndLastName
等。
以create
、update
、delete
开头的方法执行修改操作。
查看Spring Data JPA使用的约定。这是Spring框架的一部分,根据方法名称的命名约定之一进行检查,然后自动编写DAO。
get()
对于单个实体来说似乎不是一个好的选择,因为Java开发人员将get
与Java-bean getter关联在一起。
通常我会以一种方式对方法进行命名,使名称暗示该方法将应用的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)
。