如何在类中创建和实例化jpa存储库?我遇到的情况是我必须为泛型类中的不同实体创建存储库。
我可以轻松地为Neo4j存储库这样做,
GraphRepository<T> graphRepository;
this.neo4jTemplate = new Neo4jTemplate(new RestGraphDatabase(
"http://localhost:7474/db/data"));
this.graphRepository = neo4jTemplate.repositoryFor(domainClass);
对于JpaRepository,我检查了文档,发现了这个,
RepositoryFactorySupport factory = … // Instantiate factory here
UserRepository repository = factory.getRepository(UserRepository.class);
我不确定如何在上面的代码中实例化工厂。
我也不能通过指定域类来创建像Neo4j那样的存储库吗?
答案 0 :(得分:11)
我终于以这种方式工作了,
SimpleJpaRepository<User, Serializable> jpaRepository;
jpaRepository = new SimpleJpaRepository<User, Serializable>(
User.class, entityManager);
使用SimpleJpaRepository,我可以使用所有存储库方法。
jpaRepository.save(user);
答案 1 :(得分:0)
使用 SimpleJpaRepository
您只能使用接口提供的默认方法,而不能使用您在 UserRepository
中声明的方法
如果您想创建 UserRepository
的接口实例,您可以使用 -
RepositoryFactorySupport factory = new JpaRepositoryFactory(entityManager);
UserRepository repository = factory.getRepository(UserRepository.class);
它会让您自由使用您在 UserRepository