您好,登录后才能下订单哦!
小编给大家分享一下JPA中findBy语法规则有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
它们之间没有区别,它们将执行完全相同的查询,当从方法名称派生查询时,Spring Data会忽略All部分。唯一重要的一点是By关键字,其后面的任何内容都被视为字段名称
如 findXXXXXXXXXXXXXByName 实际上==》 findByName
And
:等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(String user, Striang pwd);
Or
:等价于 SQL 中的 or 关键字,比如 findByUsernameOrAddress(String user, String addr);
Between
:等价于 SQL 中的 between 关键字,比如 findBySalaryBetween(int max, int min);
LessThan
:等价于 SQL 中的 "<",比如 findBySalaryLessThan(int max);
GreaterThan
:等价于 SQL 中的">",比如 findBySalaryGreaterThan(int min);
IsNull
:等价于 SQL 中的 "is null",比如 findByUsernameIsNull();
IsNotNull
:等价于 SQL 中的 "is not null",比如 findByUsernameIsNotNull();
NotNull
:与 IsNotNull 等价;
Like
:等价于 SQL 中的 "like",比如 findByUsernameLike(String user);但是有一点需要注意的是,%需要我们自己来写
NotLike
:等价于 SQL 中的 "not like",比如 findByUsernameNotLike(String user);
OrderBy
:等价于 SQL 中的 "order by",比如 findByUsernameOrderBySalaryAsc(String user);
Not
:等价于 SQL 中的 "! =",比如 findByUsernameNot(String user);
In
:等价于 SQL 中的 "in",比如 findByUsernameIn(Collection<String> userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数;
NotIn
:等价于 SQL 中的 "not in",比如 findByUsernameNotIn(Collection<String> userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数;
其中一个是embedded class的属性
findByIdageAndTime(int age, Date time)
会先把方法名多余的前缀截取掉,比如 find、findBy、read、readBy、get、getBy,然后对剩下部分进行解析。
在实体类上使用@NamedQuery,示例如下:
@NamedQuery(name = "UserModel.findByAge",query = "select o from UserModel o where o.age >= ?1")
在自己实现的DAO的Repository接口里面定义一个同名的方法,示例如下:
public List findByAge(int age);
然后就可以使用了,Spring会先找是否有同名的NamedQuery,如果有,那么就不会按照接口定义的方法来解析。
@Query("from SysUser u where u.nickname=:nickname") SysUser findUser(@Param("nickname") String nickname); @Query("from SysUser u where u.nickname like %:nickname% order by u.fans desc") List<SysUser> findUsers(@Param("nickname") String nickname);
以上是“JPA中findBy语法规则有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。