动态创建Spring Data Repositories

时间:2016-07-27 06:56:56

标签: java spring spring-data spring-data-jpa

有没有办法自动装配Spring Data JpaRepositories而不为每个实体Bean声明存储库接口?

像:

@Autowired
JpaRepository<Person, Integer> repository;

而不是:

@Repository
public interface PersonRepository extends JpaRepository<Person, Integer> {
}

@Autowired
JpaRepository<Person, Integer> repository;

2 个答案:

答案 0 :(得分:1)

所以我发现使用SimpleJpaRepository有一种解决方法:

@PersistenceContext
EntityManager entityManager;


JpaRepository<Person, Integer> repository = new SimpleJpaRepository<>(Person.class, entityManager);

它有点hacky(而不是可自动装配)但它有效。

答案 1 :(得分:0)

不,我不敢。

您创建并标记为@Repository的接口用于创建代理,该代理实现您添加到所述接口的任何其他功能。

如果您已经在上面突出显示,在那里您没有添加任何其他功能,我可以看到为什么这样的方法会有吸引力,但我认为这是一个边缘案例,我怀疑它会值得春天的时间将其视为一个特例。

如果您认为值得,可以自己实现一个通用存储库,但是我认为使用Repository接口很有用并使代码更具可读性。