4.16springboot+jpa的学习
得先有一个接口
@Repository
public interface AccountRepository extends JpaRepository<Account, Integer> {
}
Account为实体类,Integer为主键的类型
然后调用里边的方法
属性
拼接方法名称示例
执行的语句
Distinct
findDistinctByLastnameAndFirstname
select distinct … where x.lastname = ?1 and x.firstname = ?2
And
findByLastnameAndFirstname
… where x.lastname = ?1 and x.firstname = ?2
Or
findByLastnameOrFirstname
… where x.lastname = ?1 or x.firstname = ?2
Is,Equals
findByFirstname,findByFirstnameIs,findByFirstnameEquals
… where x.firstname = ?1
Between
findByStartDateBetween
… where x.startDate between ?1 and ?2
LessThan
findByAgeLessThan
… where x.age < ?1
LessThanEqual
findByAgeLessThanEqual
… where x.age <= ?1
GreaterThan
findByAgeGreaterThan
… where x.age > ?1
GreaterThanEqual
findByAgeGreaterThanEqual
… where x.age >= ?1
After
findByStartDateAfter
… where x.startDate > ?1
Before
findByStartDateBefore
… where x.startDate < ?1
IsNull,Null
findByAge(Is)Null
… where x.age is null
IsNotNull,NotNull
findByAge(Is)NotNull
… where x.age not null
Like
findByFirstnameLike
… where x.firstname like ?1
NotLike
findByFirstnameNotLike
… where x.firstname not like ?1
StartingWith
findByFirstnameStartingWith
… where x.firstname like ?1(参数与附加%绑定)
EndingWith
findByFirstnameEndingWith
… where x.firstname like ?1(参数与前缀%绑定)
Containing
findByFirstnameContaining
… where x.firstname like ?1(参数绑定以%包装)
OrderBy
findByAgeOrderByLastnameDesc
… where x.age = ?1 order by x.lastname desc
Not
findByLastnameNot
… where x.lastname <> ?1
In
findByAgeIn(Collection
… where x.age in ?1
NotIn
findByAgeNotIn(Collection
… where x.age not in ?1
True
findByActiveTrue
… where x.active = true
False
findByActiveFalse
… where x.active = false
IgnoreCase
findByFirstnameIgnoreCase
… where UPPER(x.firstname) = UPPER(?1)
模糊查询可以加个Like
关联查询,用另一个实体类定义一个参数,在上边添加注解
@JoinColumn(name = "为另一个实体类的关联参数")
@OneToOne
如果只想要该实体类的数据,不想要另一个实体类的数据,可以设置懒加载,@OneToOne(fetch = FetchType.LAZY),@Transactional懒加载属性需要在事务环境下获取
浙公网安备 33010602011771号