问题标签 [spring-data]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2011 浏览

java - 使用 Spring 3.1 的 Java 配置配置 spring-data-mongodb 存储库

有没有办法通过新的基于 Java 的@Configuration支持来做到这一点?

0 投票
1 回答
994 浏览

mongodb - Spring Data MongoDB 返回对象转换器

我有一个包含 50 个不同字段的大型文档。保存此文档时,只需要几个字段。当我通过 Spring Data MongoDB 获取该文档时,是否可以null从对象中消除值字段?

在保存 Spring Data 期间,MongoDB 做同样的事情,只保存那些不是null.

0 投票
2 回答
15080 浏览

spring - 您如何在 Spring 容器之外使用 Spring Data JPA?

我正在尝试手动连接 Spring Data JPA 对象,以便我可以生成 DAO 代理(又名存储库)——而不使用 Spring bean 容器。

不可避免地,有人会问我为什么要这样做:因为我们的项目已经在使用 Google Guice(并且在 UI 上使用带有 GWT 的 Gin),并且我们不想维护另一个 IoC 容器配置,或者引入所有由此产生的依赖关系。我知道我们也许可以使用 Guice's SpringIntegration,但这将是最后的手段。

似乎一切都可以手动连接对象,但由于没有很好的记录,我遇到了困难。

根据 Spring Data 用户指南,可以独立使用存储库工厂。不幸的是,该示例显示了RepositoryFactorySupport哪个是抽象类。经过一番搜索,我设法找到了JpaRepositoryFactory

JpaRepositoryFactory实际上工作得很好,除了它不会自动创建事务。事务必须手动管理,否则不会持久保存到数据库中:

问题原来是@Transactional注释不是自动使用的,需要帮助TransactionInterceptor

值得庆幸的是,JpaRepositoryFactory可以在返回之前通过回调向生成的 Repository 代理添加更多 AOP 建议:

这就是事情进展不顺利的地方。单步调试代码中的调试器,TransactionInterceptor确实是在创建一个事务——但在错误的EntityManager. SpringEntityManager通过查看当前正在执行的线程来管理活动。执行TransactionInterceptor此操作并看到线程没有活动EntityManager绑定,并决定创建一个新绑定。

但是,这个 newEntityManager与创建并传递给JpaRepositoryFactory构造函数的实例不同,它需要一个EntityManager. 问题是,我如何使TransactionInterceptorJpaRepositoryFactory使用相同EntityManager

更新:

在写这篇文章时,我发现了如何解决这个问题,但它仍然可能不是理想的解决方案。我将将此解决方案作为单独的答案发布。我很高兴听到任何关于独立使用 Spring Data JPA 的更好方法的建议,而不是我解决它的方法。

0 投票
3 回答
5714 浏览

java - 使用 Spring Data JPA 继承 HQL

我有一组从单个超类继承的类:

然后每个 Aaaa、Bbbb、Cccc 都应该包含方法 findByTag。问题是我无法笼统地定义它。以下示例为 Aaaa 定义了特定的 findByTag。

请注意,超类是@MappedSuperclass,并且在数据库中没有自己的表。

我想在查询中使用某种“超级”,它将在每个类中被其名称替换。

我的第二个问题是我不知道如何强制 @ElementCollection 被急切地获取。我必须始终在查询中明确地说“join fetch”。如果它没有被提取,一旦事务完成,我就无法访问那些我没有明确提取的对象。(LazyFetch 异常...)

谢谢

0 投票
1 回答
640 浏览

json - findAndUpdate MongoDBRepository

我的任务是创建扩展 MongoDBRepository 的存储库,它允许我定义一种 findAndUpdate 方法。不允许使用 MongoOps 和模板方法。这就是我的 MongoDocument 的样子:

如您所见,一些属性只是类值,而其他属性是列表。这是我从消息传递子系统收到的更新请求:

如果请求数据的类型只是一个类值(如属性类型 1 和 2)我需要更新它,如果更新数据是另存为列表的类型,我需要附加它。

在这种情况下,您有什么建议?

0 投票
1 回答
4200 浏览

spring - 查询 @DBRef 字段

使用:Spring 3.1.0.RELEASE、Spring Data MongoDB 1.0.0.RELEASE

我有一个这样定义的文档类:

我正在尝试使用此存储库定义为特定用户选择所有 MyDoc 实例:

不幸的是,这没有找到任何东西:代码运行良好,没有例外,但是没有找到任何东西。

那么通过 DBRef-ed 字段选择文档的正确方法是什么?

注意。我已经看到了这个问题,但我的用例更简单,因为我不想按 DBRef 实体的属性进行过滤。

更新:在存储库支持通过 DBRef 查找之前,我决定采用一个简单的解决方法:使用 MongoTemplate 来形成一个使用com.mongodb.DBRef作为字段条件的查询。工作正常。

0 投票
2 回答
4247 浏览

spring - Spring Batch 的 Mongo 存储库?

Spring Batch 是否有基于 Mongo 的作业存储库?如果没有,我是否需要实施JobInstanceDao及其兄弟姐妹?有没有任何例子或现有的作品可以帮助这项工作?

0 投票
3 回答
1333 浏览

java - 注释参数中的继承

我正在尝试在 java 接口中继承以下参数(来自 Spring Data JPA 的示例,但问题通常是关于注释的参数):

这样在继承的接口中我就可以:

但不幸的是,变量“type”的字符串值关联到变量的时间太晚了,所以在创建注解时,该值仍然为空。我可以强制编译器关联子接口中的变量吗?

谢谢

0 投票
1 回答
1656 浏览

jersey - Spring Data 让 spring 找不到 JAXRS 的 @Provider?

我正在使用 Spring + Jersey 来构建 API 服务。最近,我尝试将 Spring Data 合并到我的服务器中。我没有真正在我的运行代码中使用任何存储库,只需在我的 app.xml 中添加一行:

但 !我注意到我的 API 不工作,抱怨“找不到Java 类 xxx 和 Java 类型类 xxx 和 MIME 媒体类型 application/json 的消息正文编写器”

如果我删除 xml 中的“jpa:repositories ...”行,一切正常!并且,所有提供程序类都由 spring 注册:

但是,如果我在我的 XML 中添加“jpa:repositories...”行,则只注册“根资源类”:

所有JAXRS 的 @Provider都丢失了!

我不知道这是否是 Spring-Data 的错误?以及如何解决?

环境 :

服务器 :resin-4.0.25

相关依赖:

(我尝试添加 jersey-json ,但仍然无法正常工作)

0 投票
1 回答
1587 浏览

mongodb - 在 mongodb 中使用总页数实现嵌入式分页

我检查了一个与我的嵌入式分页情况相关的旧问题。尽管带有切片的嵌入式分页工作正常,但仍然缺少总页面解决方案,我想知道是否有可能在服务器端获得评论的总大小。

有没有办法查询或计算服务器上嵌入数组的大小,而不必将整个文档提取到我的应用程序并手动计算它?

我不介意为此进行 2 次查询,1 次用于分页评论,1 次用于获取评论总数。如果我可以在一个查询中做到这一点,那将是惊人的。

顺便说一句,我正在使用 java 驱动程序和 spring-data mongodb。

请分享你的想法。谢谢 !