有时候系统提供的接口中的方法并不足以满足我们的需求,这时我们就可以通过自定义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); } }