(1)select(2)AllList(3)IdAndUpdateHashAndState By (4)TaskIdAndUpdateGroupAndStateList

动作

返回所有匹配. 如果是分页,为 PageList

返回字段

条件字段

各位对 dao 层的命名,有什么好的方案吗.🤣

JPA 逆向来一个

总感觉有苹果那味了。。

别用 namequery,手写 sql 吧

条件字段没必要的,对于形参列表查看定义的时候一目了然

要逆出什么来😅

要逆出什么来😅

苹果味是什么样的😄

是手写,mybatis id 名就是这么长.😅

传的 do.没有用形参.都是基本类型,容易眼花. 如果是用形参,确实可以条件字段免掉了🤗.

4 写注释里?

jpa 是这样的

ListBy(a,b,c,d,e)

findByParams动态 SQL

LoadAllLoadByXXXGetByXXXDeleteByXXXUpdateByXXX入参太多直接忽略 By

按场景命名,不要按参数命名。比如 会员订单搜索:memberOrderSearch()

将( 4 )封装到一个 Condition 类是不是会好一点?

我靠太对味了😅

如果你得查询条件就 2-4 个,那就按名字 findXXByxxAndXXX 如果参数长,那就按照业务来 find{{Service}}Data()

要总结一个干了很多事情的方法,得用业务意义上的名词,而不是直接描述底层细节。吃饭不要写成“哺乳动物通过蛋白质摄取能量”

层层下去,结果发现是个 sum 函数

select1

是个好想法. 缩短肯定要省去一些信息.转移阵地.

用的 mybatis,可能是看别人的博文,无形中吸取了 jpa 精华.😅

如果没有什么别的好的方法,只能这样缩短了.反正是要截掉一部份信息.

用业务名也是可以,只是很多参数就固定了.比如状态. 各个状态都要对应的业务名. 对简单的用全名,复杂的用业务名,是一个很好的方法.

嘿嘿,是这样,有的逻辑一样,外部装饰,内部自己处理参数,然后丢进机器里面

扑通,扑通..

长有问题吗?我觉得表意明确才是最重要的

那就留着这个方法,在这个方法之上再封装一层,不同的状态用不同的名字。比如:def 吃饭 selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList(状态=1)enddef 睡觉 selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList(状态=2)enddef 打豆豆 selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList(状态=3)end吃饭、睡觉、打豆豆很容易就能看明白了,这样就不用再纠结 selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList 这个方法的名字,不是问题。

selectBy 吧

我觉得没必要写那么长,建议:findXXXByCondition()1. 超过 3 个参数我都是 findXXXByCondition()2. 都到 mapper.xml 了,看这个代码的人肯定会去看你的条件是什么而不是看你的方法名称。3. 还有 selectAllList 也没必要,因为你的返回类型就知道你是单个还是列表了。

用返回类型和参数类型就可以取代函数名的大部分内容吧List select(int taskId, UpdateGroup updateGroup, List states)

不要动,这才是正宗的 Java

对味了!.NET 路过表示震惊

JPA 味太浓了

参数里有的字段没必要写到方法名上,就跟 user 表的主键 id 没必要写 user_id 而是直接用 id 一样getUserByXX 这种也是,想知道 by 什么看参数定义,想知道拿到的数据看返回定义,不用全写名字上

如果是 jpa 可以理解,mybatis 图啥呢? byCondition 参数用实体不更清楚么。

或者业务强关联,直接写业务名称写毛的具体查的啥,反正别人也不能用。你写成这样目的是为了别人用的时候知道这个。但是没人用,你写他干嘛呢。

函数名写 sql

看成如何 缩短 diao 😂

c++重载函数统一命名 query

jpa 有 specificationmybatis plus 有 querywrapper

不用 Java ,几个不知道是否可行的建议:1. 用 QueryObject 包装条件,避免筛选条件直接放到方法名里。2. 用 Statement Builder 之类的东西拆分查询逻辑,一次调用只添加一种条件。

能不能拆成函数组合?另外 dao 是靠近 sql 层面还是靠近业务层的,如果靠近 sql 层就是 crud 吧,靠近业务层的话……我一直喜欢的一句话:复杂度只能搬移,不能消除。而且函数组合的话感觉也有问题,比如会不会遇到 n+1 呢。

用 写个 sql 吧 dao 名字简单的 selectByCondition(queryCondition)

也不易读啊

不要太相信类名,后期业务需求变动,往往会偷懒不改动类名,导致类名和实际功能不符。

使用这世界上最完美的查表法,名字就叫 Ili1lii11llii11 ,然后每次开发在外面文档查表获取真实名称和功能

把最难的留给自己用.😎

很好的方法,省略掉能在方法签名上已体现的信息.

经常看到,为什么 java 里的名字这么长.

是的,参数太多,调用时也会再次核对.没必要在方法名上下功夫.

你居然想练成这样的神功.

有必要是可以再函数组合一下,这样也对关联查询在业务逻辑上做优化.

太赶了,根没有时间去考虑这么多.当想到的时候,算了吧,都这么多了.

再加上 O0

一个函数干这么多事情 也不是什么好函数吧

感觉是一种社区形成的习惯(比如 spring 源码里很多很长的, 大家会互相模仿)对比起来 go 里面很多源码就很简单(包括官方也提倡简单), 那自然大家写出来的代码就会简单但这并不一定是好事, go 里面很多缩写莫名其妙还不如写全称

最整洁的代码就是自解释的(doge你可以 loadAll 然后内存过滤, 服务器的 CPU 也比数据库的高效不是(doge