有时候系统提供的接口中的方法并不足以满足我们的需求,这时我们就可以通过自定义Repository来扩展。
/**
* 自定义的Repository接口
*/
public interface UsersRepository {
public Users findUserById(Integer userid);
}
/**
* SpringDataJPA 实现JpaRepository
* 泛型 第一个参数是对应的Pojo类型
* 第二个参数是注解的包装类型
* 使用自定义的Repository接口
*/
public interface UserDao extends JpaRepository<Users,
Integer>, JpaSpecificationExecutor<Users>, UsersRepository {
}
/**
* @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);
}
}
/**
* @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);
}
}