Spring Data概念:
是一个用于简化数据库访问,并支持云服务的开源框架,根据
JPA规范封装的一套JPA应用框架。
主要目标:是使得
构建基于 Spring 框架应用对数据的访问变得方便快捷,
主要应用注解:
@Query注解:查询适用于所查询的数据无法通过关键字查询得到结果的查询。这种查询可以摆脱像关键字查询那样的约束,
将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现。
将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现。
简单的例子:
(索引参数如下所示,索引值从1开始,查询中
"?X"个数需要与方法定
义的参数个数相一致,并且顺序也要一致。)
@Query(value = "select name,author,price from Book b where b.price>?1 and b.price<?2") List<Book> findByPriceRange(long price1, long price2);
@Modifying注解
1、在@Query注解中编写JPQL实现DELETE和UPDATE操作的时候必须加上@modifying注解,以通知Spring Data 这是一个 DELETE或UPDATE操作。
2、UPDATE或者DELETE操作需要使用事务,此时需要 定义Service层,在Service层的方法上添加事务操作。
@Transactional @Modifying @Query("UPDATE Person p SET p.email = :email WHERE p.id = :id")
void updatePersonEmail(@Param("id") Integer id, @Param("email") String email);
*JPA全称Java Persistence API,是sun提出的一个对象持久化规范