有没有人知道遵循存储库方法的任何Java框架,自动实现查询方法(例如findByNameAndLastName(…))但不依赖于Spring,只有纯JPA. GORM中也存在这样的特征.我想看看是否有任何项目可以在Guice或纯JavaEE环境中使用,而不会将Spring作为依赖项.
最佳答案
(免责声明:我是Spring Data JPA的作者)
原文链接:https://www.f2er.com/spring/431907.html有一个CDI Query Module,它与Spring Data JPA非常相似.还有一个DeltaSpike module.
请注意,Spring Data JPA附带了一个CDI扩展,它将存储库代理创建为普通的CDI bean,并且不会引导Spring容器.有些API允许以编程方式创建存储库代理,例如:
EntityManager em = // … obtain EntityManager
JpaRepositoryFactory factory = new JpaRepositoryFactory(em);
UserRepository repository = factory.getRepository(UserRepository.class);
是的,它仍然需要Spring类存在于类路径中,但它使用它们类似于使用Commons Collection等的方式.我们尽量不重新发明轮子,我们依赖的Spring库提供了许多我们不需要重新编码的有用代码.
因此,如果它是作为DI容器的Spring,那么您可以随意选择Spring Data JPA的CDI扩展.如果您不想使用任何Spring(无论出于何种原因),请查看备选方案.