持久层是介于业务逻辑层和数据库之间的,访问数据库并为业务处理提供或保存数据,具体需要哪些方法是根据业务逻辑层的需要而定。
- 这里我们使用框架Spring Data Jpa,通过pom.xml引入其依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
- 创建接口StudentRepository,继承JpaRepository<T, ID>
public interface StudentRepository extends JpaRepository<Student, Integer> {
List<Student> findByClassId(Integer classId);
}
- 实际项目中不应直接继承JpaRepository<T, ID>,而应该创建一个Repository公共类并继承JpaRepository<T, ID>,然后持久层Repository再继承该公共类。
@NoRepositoryBean
@Transactional(readOnly = true, rollbackFor = Exception.class)
public interface BaseRepository<T, ID extends Serializable> extends JpaRepository<T, ID>, JpaSpecificationExecutor<T> {
List<T> findAll(DataQueryObject query);
Page<T> findAll(DataQueryObject query, Pageable page);
Page<T> findAll(DataQueryObjectPage dataQueryObjectpage);
List<T> findAll(DataQueryObject dataQueryObject, Sort sort);
List<T> findAll(DataQueryObjectSort dataQueryObjectSort);
}