【问题标题】:Camel invoking Spring-Data causes AmbiguousMethodCallException during delete骆驼在删除期间调用 Spring-Data 导致 AmbiguousMethodCallException
【发布时间】:2013-03-08 19:38:17
【问题描述】:

我有一个 Spring-Data MongoDB 存储库。就是这样:

public interface MyDataRepository extends PagingAndSortingRepository<MyData, String> {}

我正在使用 Camel,保存效果很好:

.beanRef("myDataRepository","save")  // saves myData from message body

但删除失败。消息正文是一个字符串,它是“myData”对象的 id。这是 Spring 告诉我的(我的格式):

org.apache.camel.component.bean.AmbiguousMethodCallException: 
 Ambiguous method invocations possible: [
    public final void $Proxy42.delete(java.io.Serializable), 
    public final void $Proxy42.delete(java.lang.Iterable), 
    public final void $Proxy42.delete(java.lang.Object)]. 
 Exchange[Message: 513a3b6c0364f9195eca39ed]

我已经尝试了这么多排列,我不知道该调出哪些排列。 这里有一些简单的:

.beanRef("myDataRepository","delete")
.beanRef("myDataRepository","delete(String)")

想法?

【问题讨论】:

    标签: mongodb apache-camel spring-data


    【解决方案1】:

    嗯,我的解决方案是稍微绕过这个问题。

    转用:

    .beanRef( "myDataRepository", "findOne" )  // lookup based on id in msg body
    .beanRef( "myDataRepository", "delete" )   // delete based on object
    

    所以现在我使用对象本身删除,消除歧义。足够好,但对直接解决该问题的其他答案持开放态度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-05
      • 2019-10-19
      • 2022-01-11
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多