使用Spring Data JPA关键字时,以下两者之间是否存在任何差异:
List<SomeEntity> findBySomeCondition();
和
List<SomeEntity> findAllBySomeCondition();
一个不同之处是,对于findAllBy Hibernate,应用了过滤器(@filters from org.Hibernate.annotations),因此使用了不同的sql。
为了说明差异,让我们来看看这两个函数:
1. Set<Policy> findAllByRoleIn(Iterable<Role> role);
2. Set<Policy> findByRoleIn(Iterable<Role> role);
第1个函数生成的查询:
1. select policy.id, policy.role from policy where (policy.role in (? , ? , ? , ?))
第二个函数生成的查询:
2. select policy.id, policy.role from policy where (policy.role in (? , ? , ? , ?))
结论:很明显,如果我们看看这两个函数生成的查询。我们可以清楚地看到,两个函数定义之间没有区别,它们执行完全相同的查询。
不,它们之间没有区别,它们将执行完全相同的查询,当从方法名导出查询时,Spring Data将忽略All
部分。唯一重要的位是By
关键字,它后面的任何内容都被视为字段名(除了其他关键字,如OrderBy
,这可能会导致一些奇怪的方法名称,如findAllByOrderByIdAsc
)。
这意味着这样的东西是完全有效的:
List<SomeEntity> findAnythingYouWantToPutHereBySomeCondition();
并将执行完全相同的SQL查询:
List<SomeEntity> findBySomeCondition();
或者
List<SomeEntity> findAllBySomeCondition();
Spring数据2.3.6版本的文档讨论了此功能:
fine
(或其他引入关键字)和By
之间的任何文本都被认为是描述性的,除非使用结果限制关键字之一,如区分
在要创建的查询上设置不同的标志或top
/First
限制查询结果。
在一篇关于即将发布的SpringData 2.0版本的博客文章中解释了该功能的用途:
Spring数据的方法解析使用前缀关键字,如find
、exists
、count
、和delete
,以及终止By
关键字。在find
和By
之间输入的所有内容都会使方法名更具表现力,并且不会影响查询派生。
问题内容: 使用Spring Data JPA关键字之间有什么区别: 和 问题答案: 不,它们之间没有区别,它们将执行完全相同的查询,当从方法名称派生查询时,Spring Data会忽略该部分。唯一重要的位是关键字,其后的所有内容均被视为字段名称(其他关键字(如偶然会导致某些奇怪的方法名称)之类的关键字除外)。 这意味着这样的事情是完全正确的: 并将执行与以下命令完全相同的SQL查询: 要么 更新
本文向大家介绍数据路径之间的差异,包括了数据路径之间的差异的使用技巧和注意事项,需要的朋友参考一下 数据路径 CPU有两个部分,数据部分和控制部分。数据部分也称为数据路径。寄存器,ALU和互连总线共同构成一条数据路径。数据路径分为三种类型: 单周期 多周期 管道 以下是单周期,多周期和管道数据路径之间的一些重要区别。 序号 键 单周期 多周期 管道 1 单周期具有一个CPI(每个指令的时钟周期)。
得到一些问题与桌子布线。我需要为每个用户uniq购物车,在那里我将存储书籍。 当我在DB中打开AppUser表时,“cart_id”列始终为NULL。 购物车表只有id列-不确定是否应该这样 谢谢! 购物车
我使用Spring boot反应式web流量作为restendpoint。 以下两者之间的区别是什么: 到 我不理解我的控制器方法在输入参数上的差异。我知道一个是pojo,另一个是mono,但从反应的角度来看,这意味着什么?
问题: 1) 和之间的差异? 我已经读到,这两种方法都消除了将代码连接到XML中的必要性,但没有得到它们之间的区别。 2) 、和之间有什么区别? -何时使用哪一种? -每种方法的优缺点是什么?
我们正计划使用liquibase来维护一些参考数据(dataset少于20k行)。数据将在QC环境中更新和验证,我们希望使用LiquiBase将更改转移到prod。 我使用带有difftypes=data的generateChangeLog