有什么办法可以拦截或者改变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(使用前将#替换为@)