根据子属性对象查询,使用_表达 根据子对象的某个属性进行查询

如 findByUser_AddressZip 是根据 user对象的addressZip属性进行查询

比如 AccountInfo 包含一个 user 的属性,也有一个 userAddress 属性,此时会存在混淆。读者可以明确在属性之间加上 "_" 以显式表达意图,比如 "findByUser_AddressZip()" 或者 "findByUserAddress_Zip()"。

在查询时,通常需要同时根据多个属性进行查询,且查询的条件也格式各样(大于某个值、在某个范围等等),Spring Data JPA 为此提供了一些表达条件查询的关键字,大致如下:

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 类型,也可以是数组或者不定长参数;

开源 IP 地址定位库 ip2region 1.9.0 发布

ip2region 是准确率 99.9% 的 IP 地址定位库,0.0x 毫秒级查询,提供了 Java、PHP、C、Python、Node.js、Golang、C#、Rust、Lua 的查询绑定和 Binary、B树、内存三种查询算法,妈妈再也不同担心我的 IP 地址定位!

ip2region 1.9 更新如下:

1、数据升级至 2019/05/02 的版本,国外的数据增加了大量城市级别的数据,ip2region.db 增长到 7MB。
2、开源了 ip2region.db 的生成程序,目前提供了 java 语言的实现,在${ip2region_root}/maker 目录下,便于对 ip2region 的研究或者更改自定义生成配置等,后期会提供C语言的实现。

下载地址:

Gitee: https://gitee.com/lionsoul/ip2region/tree/v1.9.0-release
Github: https://github.com/lionsoul2014/ip2region/releases/tag/v1.9.0-release

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。