先了解一下springData:
springData出现就是为了简化.统一持久层的各种实现技术API
springData提供了一套标准api和不同持久层整合技术实现
而springDataJpa就是继承了springData和JAP标准(sun公司推出的标准)
我们开发Repository只需要继承JpaRepository就可以了
SpringDataJpa查询Query的使用
第一种:根据方法命名规则自动生成
基于一列等值查询 findBy列名 例如:findByName(String name)
// 根据名称查询
public List<Standard> findByName(String name);
基于一列模糊查询findBy列名Like 例如:findByNameLike(String name)
基于两列等值查询findBy列名And列名 例如:findByUsernameAndPassword(String username,String password)
第二种:不按命名规则写的查询方法,可以配置@Query绑定JPQL语句或者SQL语句
@Query(value="from Standard where name = ?" ,nativeQuery=false)
// nativeQuery 为 false 配置JPQL,为true 配置SQL
public List<Standard> queryName(String name);
第三种:不按命名规则写的查询方法,配置@Query,没写语句,实体类@NamedQuery定义
@Query
public List<Standard> queryName2(String name);
@NamedQueries({
@NamedQuery(name="Standard.queryName2",query="from Standard where name=?")
})
SpringDataJpa修改操作Query使用
@Query注解完成,搭配使用@Modifying标记修改、删除操作
@Query(value="update Standard set minLength=?2 where id =?1")
@Modifying
public void updateMinLength(Integer id , Integer minLength);
Junit单元测试,要添加事务,设置事务不回滚
@Test
@Transactional
@Rollback(false)
public void testUpdate(){
standardRepository.updateMinLength(1, 3);
}