DAO方法的标准命名约定

Tom*_*ker 11 java dao design-patterns naming-conventions

是否存在DAO方法的标准命名约定,类似于JavaBeans?

例如,我看到的一个命名约定是get()用于返回单个实体并find()返回实体列表.

如果没有,你的团队使用的是什么?为什么?

Ang*_*ity 18

我知道如下的惯例:

  • 开始的方法find执行select操作,以及含有该搜索条件,像方法名findById,findByUsername,findByFirstNameAndLastName等.

  • 修饰方法入手create,update,delete.

查看Spring Data JPA使用的约定.这是Spring框架的一部分,它根据命名约定检查方法名称,自动编写DAO.

get() 单个实体似乎不是一个好的选择,因为Java开发人员将get与Java-bean getter相关联.

  • 非常同意:find 比 get 好得多(它总是让我想到 getter)。在方法名称中添加搜索条件也非常好。 (2认同)

Kon*_*kov 11

通常我会以这样的方式命名方法:名称提示将由方法应用的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).

  • 当转到DAO层时,我们不应该使用与Model中相同的命名.而不是'获取'使用'find',而不是'set'和'add'使用'update'.另外,尽可能尝试更多面向对象传递模型对象,特别是更新方法. (2认同)