SpringDataJPA之自定义Repository

  有时候系统提供的接口中的方法并不足以满足我们的需求,这时我们就可以通过自定义Repository来扩展。

自定义Repository

1. 定义接口

/**
 * 自定义的Repository接口
 */
public interface UsersRepository {
    public Users findUserById(Integer userid);
}

2.使用接口

/**
 * SpringDataJPA 实现JpaRepository
 * 泛型 第一个参数是对应的Pojo类型
 *      第二个参数是注解的包装类型
 *  使用自定义的Repository接口
 */
public interface UserDao extends JpaRepository<Users,
        Integer>, JpaSpecificationExecutor<Users>, UsersRepository {

}

3.创建接口的实现类

/**
 * @program: spring-data-jpa-demo
 * @description: 创建接口的实现类
 * @author: 波波烤鸭
 * @create: 2019-05-18 20:31
 */
public  class UserDaoImpl implements UsersRepository {

    @Autowired
    private EntityManager em;

    @Override
    public Users findUserById(Integer userid) {
        System.out.println("MyRepository ....");
        return em.find(Users.class,userid);
    }
}

4.单元测试

/**
 * @program: spring-data-jpa
 * @description: 单元测试
 * @author: 波波烤鸭
 * @create: 2019-05-18 09:48
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class TestDemo {

    @Autowired
    private UserDao usersDao;

    /**
     * 需求:根据用户 ID 查询数据
     */
    @Test
    public void test1(){
        Users users = this.usersDao.findUserById(6);
        System.out.println(users);
    }
}

SpringDataJPA之自定义Repository_第1张图片

你可能感兴趣的:(#,SPRING-DATA系列)