2012-03-22 6 views
0
次のように私は春モンゴリポジトリのインターフェースを定義しています

春のMongo - 私のカスタムリポジトリ実装からリポジトリのインターフェイスメソッドへのアクセス

public interface FooRepository 
    extends MongoRepository<Foo, String>, FooRepositoryCustom { 
    Foo findByMyField(String myField); 
} 

...と、このようなカスタムインターフェイス:

public interface FooRepositoryCustom { 
    Foo findByMyObject(MyObject obj); 
} 

カスタムリポジトリの実装では、findByMyFieldメソッドを呼び出すことによってfindByMyObjectを定義したいと思います。ような何か:

public class FooRepositoryImpl implements FooRepositoryCustom { 
    public Foo findByMyObject(MyObject obj) { 
    return new Foo(<repository>.findByMyField(obj.getId())); 
    } 
} 

私はそのリポジトリのインターフェースへの参照を得ることができる方法の任意の手掛かり?あなたは次のことを試すことができ

答えて

1

...

public class FooRepositoryImpl implements FooRepositoryCustom { 
@Autowired 
private FooRepository fooRepository; 
public Foo findByMyObject(MyObject obj) { 
    return new Foo(fooRepository.findByMyField(obj.getId())); 
    } 
} 

また

@Autowired 
private MongoRepository<Foo, String> fooRepository; 

ないジェネリック医薬品はタイプによってautowireをトリップするかどうかわからを試すことができます。

+0

私は最初の1つを試しました、それは魅力のように動作します、ありがとう –

関連する問題