我有一个关于在 Spring 中使用 JpaRepository 的概念性 OO 问题。是否可以将 JpaRepository 暴露给调用者并让他们在该实例上调用 CRUD 方法,或者我必须包装每个方法并仅从服务中调用相应的 JpaRepository 方法?
在代码中:
public interface MyJpa extends JpaRepository<MyEntity, Long>
然后:
@Repository
public class MyDbService{
@Autowired
private MyJpa myJpa;
public Iterable<MyEntity> findAll()
{
return myJpa.findAll()
}
... other CRUD methods
}
那么客户会这样做:
Iterable<MyEntity> entities = myDbService.findAll();
相对于:
@Repository
public class MyDbService{
@Autowired
private MyJpa myJpa;
public MyJpa getJpa() {
return myJpa
};
}
那么客户会这样做:
Iterable<MyEntity> entities = myDbService.getJpa().findAll();
不使用第二种方法的主要问题是什么?