有時候系統提供的接口中的方法并不足以滿足我們的需求,這時我們就可以通過自定義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);
}
}
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CNkVDN1Q2NjRTOyQmY3QTOzUGO0UzN0M2Y0ATZ4EGZm9CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)