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'。尽可能地尝试更多的面向对象传递模型对象,特别是更新方法。 –