Spring Mongo - 从我的自定义存储库实现中访问存储库接口方法

时间:2012-03-22 10:50:54

标签: java spring mongodb

我正在定义一个Spring 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 个答案:

答案 0 :(得分: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;

不确定泛型是否会按类型跳转自动装配。