使用Spring Data JPA关键字之间有什么区别:
List<SomeEntity> findBySomeCondition();
和
List<SomeEntity> findAllBySomeCondition();
不,它们之间没有区别,它们将执行完全相同的查询,All
当从方法名称派生查询时,Spring
Data会忽略该部分。唯一重要的位是By
关键字,其后的所有内容均被视为字段名称(其他关键字(如OrderBy
偶然会导致某些奇怪的方法名称)之类的关键字除外findAllByOrderByIdAsc
)。
这意味着这样的事情是完全正确的:
List<SomeEntity> findAnythingYouWantToPutHereBySomeCondition();
并将执行与以下命令完全相同的SQL查询:
List<SomeEntity> findBySomeCondition();
要么
List<SomeEntity> findAllBySomeCondition();
更新: 我从没有在文档中看到有关此行为的任何正式描述,但是在有关即将发布的Spring
Data(Kay)2.0版本的最新博客中对此进行了解释:
春季数据的方法解析使用前缀的关键字,例如
find
,exists
,count
,和delete
和终端By
关键字。一切你把之间find
,并By
让您的方法名称更具表现力,并且不影响查询的推导。
使用Spring Data JPA关键字时,以下两者之间是否存在任何差异: 和
我不理解 如果a是假的,那么b是看的,但是条件没有被测试。 但。。。。 现在,如果a为真,那么b不被查看,条件不被测试。 这是为什么。我以为这个的目的 我有这个权利吗?如果我有,为什么会这样?
问题内容: 我错放了太多次了,我想我一直忘记,因为我不知道两者之间的区别,只是一个给了我我期望的价值,而另一个却没有。 为什么是这样? 问题答案: 是的简写形式(尽管请注意,该表达式只会被计算一次。) 是的,即指定一元的到。 例子:
问题内容: 因此,我有一段简单的代码可以打印出整数1-10: 然后,如果仅在第3行上更改一个运算符,它将打印出无限数量的1整数(我知道为什么会这样做)。为什么在运行第二个程序时没有出现语法错误?如果赋值运算符后面跟着一个加法运算符,它不会调用语法错误吗? 问题答案: 与相同, 只是意味着。
问题内容: 我对JPA中的LockModeTypes的工作感到困惑: 它在提交时增加版本。 这里的问题是:如果我的实体中有版本列,并且如果未指定此锁定模式,则它的工作方式也类似,那么它的用途是什么? 即使未更新实体,它也会在此处增加版本列。 但是,如果在提交此事务之前有任何其他进程在同一行中进行了更新,它的用途是什么?无论如何,该交易将失败。那么这个有什么用呢。 此锁定模式发出a (如果未指定提示