0

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

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

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

.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)")

想法?

4

1 回答 1

0

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

改用:

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

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

于 2013-03-11T17:14:51.600 回答