更改或覆盖 Mongorepository.save(document) 的默认行为

2024-04-09

有什么办法可以拦截或者改变document before MongoRepository.save(e)更新了吗?

我正在尝试将子属性推入文档中并将数组推入文档中。我尝试过操纵DBObjects通过实施converter(使用自定义转换器)但是$push那里的操作不起作用。

我认为要使其发挥作用,我必须实施类似的事情mongoOperation.update(dbObjectMatch,dbObjectUdate).

I found MongoRepositorysave(document)不支持部分更新,即仅将更改写入现有文档。我想知道内部代码MongoRepository.save覆盖默认行为。

我已经实施了MyRepositoryCustom我可以在哪里覆盖save通过扩展相同的MyRepository,这延伸了MongoRepository<T, ID extends Serializable>然后使用mongoTemplate.updateFirst(query,update,Clazz.class)达到我想要的目标,但我并不满足。


您有多个略有不同的问题:

从你的标题来看:

更改/覆盖 Mongorepository Save() ( S save(S var1)) 方法的默认行为

您可以使用自定义实现来覆盖 Spring Data 存储库中现有方法的行为。看参考文档 http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repositories.custom-implementations怎么做。你的最后一段表明你已经这样做了。不幸的是,您没有告诉我们您对此不满意的原因。

有没有办法在 Mongorepository Save() ( S save(S var1)) 方法之前拦截/更改文档更新。

是的,Spring Data MongoDB 存储库为此目的触发各种生命周期事件。再次,详细信息请参阅参考文档 http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongodb.mapping-usage.events.

我想知道 Mongorepository Save 的内部代码

您正在寻找的是SimpleMongoRepository.java https://github.com/spring-projects/spring-data-mongodb/blob/master/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepository.java将几乎所有工作委托给MongoTemplate.java https://github.com/spring-projects/spring-data-mongodb/blob/master/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改或覆盖 Mongorepository.save(document) 的默认行为 的相关文章

随机推荐

  • Sql*plus 总是返回退出代码 0?

    每当我使用 Sql plus 运行 sql 脚本并检查 时 即使脚本不成功 我也会得到 0 Example sqlplus user password instance script sql SQL Plus Release 10 2 0
  • 在今天和昨天之间选择

    我正在尝试在两个日期之间进行选择 如下所示 SELECT p Code p Name sum h PA 1 AS PA sum h PB 1 AS PB sum h PG 1 AS PG sum h GoedkeuringDoorNew G
  • golang - 切片中指针的内容在递归函数运行期间发生变化

    func getAllCertainDivs className string idName string htmlTag HtmlTag matchingDivs HtmlTag fmt Println htmlTag Class if
  • Actionscript 3 的面向方面编程库/框架?

    我正在寻找 Actionscript 3 的全功能 AOP 库 到目前为止我注意到以下项目 但它们似乎都有问题 http farmcode org page Sodality aspx http farmcode org page Soda
  • Elasticsearch 中累积基数聚合的替代解决方案

    我正在运行一个无法访问的 Elasticsearch 集群x packs在 AWS 上 但我仍然想做一个cumulative cardinality aggregation https www elastic co guide en ela
  • ASP.NET Identity - 如何将 dbo.AspNetUsers.Id 更改为非聚集索引?

    我正在使用 ASPNET Identity 2 0 并且需要 添加一个名为 ApplicationUserId int 聚集索引的新字段 将 dbo AspNetUsers Id nvarchar 字段从聚集索引更改为非聚集索引 在我的 M
  • .net Core Quartz 依赖注入

    我如何配置 Quartz net核心使用依赖注入 我使用标准的 net core依赖机制 在实现类的构造函数中IJob 我需要注入一些依赖项 您可以使用Quartz Spi IJobFactory接口并实现它 Quartz 文档指出 当触发
  • SVG QIcon 无法返回在 QToolButton 中使用的放大像素图

    我在图标中使用 SVG 图像QToolButtons 但我需要能够更改工具按钮的大小 并且需要放大或缩小图标 我的 SVG 图标的原始大小为 24 像素 麻烦的是QIcon是它们不会放大到超过原始大小 请参阅我的代码中的 attempts0
  • Shared_ptr 的删除器是否存储在自定义分配器分配的内存中?

    说我有一个shared ptr使用自定义分配器and自定义删除器 我在标准中找不到任何有关删除器应存储在何处的内容 它没有说自定义分配器将用于删除器的内存 也没有说它won t be 这是未指定的还是我只是错过了一些东西 C 11 中的 u
  • C# 的图形查看器/抽屉?

    是否有一个好的 C 库用于绘制 可视化图形 我说的是节点路径可视化而不是折线图等 最好是原生的 而不是 pstricks 的包装或类似的东西 谢谢 一些提示 快速图表 http www codeplex com quickgraph 是一个
  • 隐藏显示的引导程序弹出窗口后需要单击两次

    popoverlink popover popoverhide click function popoverlink popover hide popoverlink position absolute top 100px left 100
  • 使用已弃用的 Hamcrest 方法 is() 的替代方法是什么?

    我现在使用以下代码来断言boolean值 但是方法org hamcrest Matchers is 已弃用 assertThat someValue is false 是否有一种简单的替代语法来测试布尔值而无需求助于assertTrue 这
  • web2py 中的登录后重定向

    我在控制 web2py 中的登录后重定向行为时遇到问题 根据this http groups google com group web2py msg c07acc2f4395f6e4 web2py 以不同的方式处理登录后重定向 具体取决于登
  • WPF 相对源行为

    我的理解有些问题RelativeSource绑定行为 下面是绑定的代码Label内容到StackPanel正确标记
  • 为什么常量 POD 对象中的字段本身不是常量?

    我想为某个 GUID 一个 16 字节结构 专门设计一个模板 GUID 对象具有内部链接 因此我无法使用对象本身的地址 但我认为我可以使用对象的内容 因为该对象是常量 但这不起作用 如以下示例代码所示 struct S int const
  • 如何获取列表框中所选项目的索引?

    我想获取 Google Apps 脚本列表框中所选项目的索引 而不是所选项目本身 到目前为止我看到的所有示例都创建了一个服务器处理程序 通过以下方式获取列表框的值 var list1Value e parameter list1 我想获取索
  • Auth0 回调 URL 不匹配

    我正在 React 应用程序中使用 auth0 进行 LinkedIn 身份验证 我已经设定localhost 3000 upload在设置中的回调网址中 希望用户登录后localhost 3000 login 他们将被重定向到localh
  • docker-compose 使用多个标签构建文件

    我需要为我的应用程序功能创建一些图像 Azure 中的一些协同工作的 Web 应用程序 并且我还想使用多个标签来标记图像 例如最新版本 次要版本 主要版本和完整版本 我在这里阅读了有关扩展的信息https stackoverflow com
  • 匿名文件对象何时/如何关闭?

    在评论中这个问题 https stackoverflow com questions 38234224 learning python the hard way ex 17 i got the one liner but 关于Python单
  • 更改或覆盖 Mongorepository.save(document) 的默认行为

    有什么办法可以拦截或者改变document before MongoRepository save e 更新了吗 我正在尝试将子属性推入文档中并将数组推入文档中 我尝试过操纵DBObjects通过实施converter 使用自定义转换器 但