问题标签 [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.
java - 使用 Spring 3.1 的 Java 配置配置 spring-data-mongodb 存储库
有没有办法通过新的基于 Java 的@Configuration
支持来做到这一点?
mongodb - Spring Data MongoDB 返回对象转换器
我有一个包含 50 个不同字段的大型文档。保存此文档时,只需要几个字段。当我通过 Spring Data MongoDB 获取该文档时,是否可以null
从对象中消除值字段?
在保存 Spring Data 期间,MongoDB 做同样的事情,只保存那些不是null
.
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
. 问题是,我如何使TransactionInterceptor
和JpaRepositoryFactory
使用相同EntityManager
?
更新:
在写这篇文章时,我发现了如何解决这个问题,但它仍然可能不是理想的解决方案。我将将此解决方案作为单独的答案发布。我很高兴听到任何关于独立使用 Spring Data JPA 的更好方法的建议,而不是我解决它的方法。
java - 使用 Spring Data JPA 继承 HQL
我有一组从单个超类继承的类:
然后每个 Aaaa、Bbbb、Cccc 都应该包含方法 findByTag。问题是我无法笼统地定义它。以下示例为 Aaaa 定义了特定的 findByTag。
请注意,超类是@MappedSuperclass,并且在数据库中没有自己的表。
我想在查询中使用某种“超级”,它将在每个类中被其名称替换。
我的第二个问题是我不知道如何强制 @ElementCollection 被急切地获取。我必须始终在查询中明确地说“join fetch”。如果它没有被提取,一旦事务完成,我就无法访问那些我没有明确提取的对象。(LazyFetch 异常...)
谢谢
json - findAndUpdate MongoDBRepository
我的任务是创建扩展 MongoDBRepository 的存储库,它允许我定义一种 findAndUpdate 方法。不允许使用 MongoOps 和模板方法。这就是我的 MongoDocument 的样子:
如您所见,一些属性只是类值,而其他属性是列表。这是我从消息传递子系统收到的更新请求:
如果请求数据的类型只是一个类值(如属性类型 1 和 2)我需要更新它,如果更新数据是另存为列表的类型,我需要附加它。
在这种情况下,您有什么建议?
spring - 查询 @DBRef 字段
使用:Spring 3.1.0.RELEASE、Spring Data MongoDB 1.0.0.RELEASE
我有一个这样定义的文档类:
我正在尝试使用此存储库定义为特定用户选择所有 MyDoc 实例:
不幸的是,这没有找到任何东西:代码运行良好,没有例外,但是没有找到任何东西。
那么通过 DBRef-ed 字段选择文档的正确方法是什么?
注意。我已经看到了这个问题,但我的用例更简单,因为我不想按 DBRef 实体的属性进行过滤。
更新:在存储库支持通过 DBRef 查找之前,我决定采用一个简单的解决方法:使用 MongoTemplate 来形成一个使用com.mongodb.DBRef作为字段条件的查询。工作正常。
spring - Spring Batch 的 Mongo 存储库?
Spring Batch 是否有基于 Mongo 的作业存储库?如果没有,我是否需要实施JobInstanceDao
及其兄弟姐妹?有没有任何例子或现有的作品可以帮助这项工作?
java - 注释参数中的继承
我正在尝试在 java 接口中继承以下参数(来自 Spring Data JPA 的示例,但问题通常是关于注释的参数):
这样在继承的接口中我就可以:
但不幸的是,变量“type”的字符串值关联到变量的时间太晚了,所以在创建注解时,该值仍然为空。我可以强制编译器关联子接口中的变量吗?
谢谢
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 ,但仍然无法正常工作)
mongodb - 在 mongodb 中使用总页数实现嵌入式分页
我检查了一个与我的嵌入式分页情况相关的旧问题。尽管带有切片的嵌入式分页工作正常,但仍然缺少总页面解决方案,我想知道是否有可能在服务器端获得评论的总大小。
有没有办法查询或计算服务器上嵌入数组的大小,而不必将整个文档提取到我的应用程序并手动计算它?
我不介意为此进行 2 次查询,1 次用于分页评论,1 次用于获取评论总数。如果我可以在一个查询中做到这一点,那将是惊人的。
顺便说一句,我正在使用 java 驱动程序和 spring-data mongodb。
请分享你的想法。谢谢 !