0

Spring-DataMongoDBリポジトリがあります。それはこれだけです:

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

考え?

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 に答える