有谁知道任何遵循存储库方法并自动实现查询方法(例如findByNameAndLastName(…)
)但不依赖于 Spring 的 Java 框架,只有纯 JPA。这样的特性在 GORM 中也存在。我想看看是否有任何项目可以在Guice或纯JavaEE环境中使用而无需将Spring作为依赖项。
3 回答
(免责声明:我是 Spring Data JPA 的作者)
有CDI 查询模块,它与 Spring Data JPA 非常相似。还有一个DeltaSpike 模块。
请注意,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 库提供了许多我们不必重新编码的有用代码。
因此,如果您担心的是 Spring 作为 DI 容器,请随意选择 Spring Data JPA 的 CDI 扩展。如果您不想使用任何 Spring(无论出于何种原因),请查看替代方案。
根据 Oliver 的信息,后续也对这个话题感兴趣——
CDI 查询加入 Deltaspike 邮件线程:http ://apache-deltaspike-incubator-discussions.2316169.n4.nabble.com/Porting-the-CDI-Query-extension-project-to-DeltaSpike-td4329922.html
Deltaspike 基础链接:http ://deltaspike.apache.org/index.html
入门:http ://deltaspike.apache.org/documentation.html
截至 2013 年 5 月 31 日,他们刚刚发布了第 0.4 个版本。
但是,还没有做足够的审查来对比/比较 Deltaspike 与带有 CDI 扩展的 Spring-Data(spring-data 非常成熟)。
看看github上的Tomato吧!
它是 Spring JPA 的功能替代品,具有零依赖性,性能更好并且更易于使用。它将您的数据访问代码减少 98%,并立即提供您想要的结果。
https://rpbarbati.github.io/Tomato。
如果您想要任何番茄实体或层次结构的免费、功能齐全的动态表单和/或表格,也可以轻松定制,请尝试基于角度的配套项目......
https://rpbarbati.github.io/Basil
两者都是当前维护的项目。
自己尝试一下,或通过 rodney.barbati@gmail.com 联系作者有问题。