リポジトリを作成するコレクションを指定するにはどうすればよいですか?
私の構成:
<!-- Database -->
<mongo:mongo id="mongoDb" host="localhost" port="27017"/>
<mongo:db-factory id="mongoDbFactory" mongo-ref="mongoDb" dbname="test"/>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
</bean>
<mongo:repositories base-package="de.cochu.springtest.mongodb.repositories"/>
私の文書:
@Document
public class User {
@Id String id;
@Indexed String email;
...getters and setters omitted...
}
ユーザー コレクションのリポジトリ (...mongodb.repositories パッケージ内にあります)。CrudRepository から拡張しました。
public interface UserRepository extends CrudRepository<User, String>{
User findByEmail(String email);
}
そして最後に、UserRepository を使用する Spring サーブレットのコントローラー:
@Controller
public class MyController {
@Autowire UserRepository repo;
@RequestMapping("/test.html")
public String something(HttpServletRequest request) {
User u = userRepository.findByEmail(request.getParameter("email"));
...
}
}
コンソール経由でいくつかのサンプル ユーザーをセットアップしました。mongoTemplate.getCollection("users").count() は正常に動作します。リポジトリは何も見つかりません。
... UserRepository は、コレクション "users" 内のユーザーを検索したいことをどのように認識していますか?/これはリポジトリを使用する正しい方法ですか?
... Intellij IDEA は UserRepository の自動配線を認識しません。エラーが表示されますが、コンパイルされ、例外はスローされません。それについて何かできることはありますか?