メソッドを 1 つ追加して MongoRepository をカスタマイズし、MongoRepository によって提供される実装済みのメソッドを引き続き使用したいと考えています。以下はコードです:
public interface TopoRepositoryInterface extends MongoRepository<Topo, String>
{
@Query("{'name':?0}")
public Topo findByName(String name);
public long getPublishedTopoCount();
}
実装宣言は次のとおりです。
public class TopoRepositoryImpl extends SimpleMongoRepository<Topo, String> implements TopoRepositoryInterface
カスタマイズがなければ、 @Query("{'name':?0}") アノテーションを追加することで、TopoRepositoryInterface で宣言されたメソッド findByName を自動的に実装できます。しかし今、インターフェイスの継承があるので、コードを追加する必要があります
@Override
public Topo findByName(String name)
{
Topo topo = getMongoOperations().findOne(Query.query(Criteria.where("name").is(name)), Topo.class);
return topo;
}
getPublishedTopoCount() のみの独自のコードを記述し、findByName() を @Query アノテーションによって実装したままにする方法はありますか? どうもありがとうございました。