天天看點

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

繼續閱讀