开发指南103-jpa的find**/get**全解
平台使用jpa来访问数据库。在dao层可以通过定义find**/get**函数,通过名字直接绑定数据库字段。find**和get**有一定区别:
1.get**方法查询不到数据抛出异常,find**方法查询不到数据则返回null。
2.get**是延迟加载,在真正访问返回的代理对象的属性之前,它不访问数据库。find则立即执行,将返回到数据库中的一行映射到实际的某个对象。
根据以上特性,平台中规定全部使用find**。
find和By之间的关键字
All和不写等价:即findAllBy和findBy是一样的,平台规定使用All
First:用于返回满足条件的第一个匹配项。返回值是一个Optional
对象以便处理可能不存在的情况。
TopN:取前N个实体,只取1个的话,不写数字。
Distinct:返回去重的结果。由于这种写法返回的是完整实体,而不是具体字段值,并不实用,本平台不使用
By之后的关键字
And 并且
Or 或
Is,Equals 等于
Between 两者之间
LessThan 小于
LessThanEqual 小于等于
GreaterThan 大于
GreaterThanEqual 大于等于
After 之后(时间) >
Before 之前(时间) <
IsNull 等于Null
IsNotNull,NotNull 不等于Null
Like 模糊查询。查询件中需要自己加 %
NotLike 不在模糊范围内。查询件中需要自己加 %
StartingWith 以某开头
EndingWith 以某结束
Containing 包含某
OrderBy 排序
Not 不等于
In 某范围内
NotIn 某范围外
True 真
False 假
IgnoreCase 忽略大小写
其实就是把sql语句搬到了函数名字中
OrderBy
Asc 正序 Desc 倒序
同理就是把sql语句搬到了函数名字中