JpaRepository继承自PagingAndSortingRepository接口,JpaRepository基于JPA的Repository接口,极大减少了JPA作为数据访问的代码,JpaRepository是实现Spring Data JPA技术访问数据库的关键接口。
事例:
实体类
package com.yaozi.mallproject.entity;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import lombok.Data;
import javax.persistence.*;
@Entity
@EntityListeners(AuditingEntityListener.class)
@Data
public class User {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
private Boolean locked = false;
private String email = "";
private String avatar = "";
private Long registerAt;
private String registerIp;
private Long loginAt = 0L;
private String loginIp = "";
private String mobile;
private Long schoolId;
@CreatedDate
private Long createdTime;
@LastModifiedDate
private Long updatedTime;
}
数据查询接口层
package com.yaozi.mallproject.repository;
import com.yaozi.mallproject.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import java.util.List;
import java.util.Optional;
public interface UserRepository extends JpaRepository<User, Long>, QuerydslPredicateExecutor<User> {
@Override
List<User> findAll();
User getUserById(Long id);
Optional<User> getUserByUsername();
}