2016-06-16 10 views
0

が動作していないが、私のUserRepositoryとfind関数この春データのクエリはここ

@Repository 
public interface UserRepository extends CrudRepository<JPA_Users, Long> { 

    List<JPA_Users> findByName(String Name); 

} 

で、コントローラの機能の一つで、私は

@RequestMapping(value = "/jpadata1", method = RequestMethod.GET) 
    public String jpadata1(ModelMap map) {   
     UserRepository repository; 


     ApplicationContext context = new ClassPathXmlApplicationContext("beans1.xml"); 
     repository = context.getBean(UserRepository.class); 


     Iterable usrs = repository.findByName("shahzad"); 

} 

を次のようにこの機能を見つけるにアクセスしようとしていますデータベース内の名前付きの列を持つ列と私は値を持つ複数のレコードを持っているshahzadこれらのレコードはすべて返されると期待していたが、この関数は何も返さないレコードは返されない

Shahzad

+2

実際には、基本となるSpringの基本概念を学ぶ必要があります。コンテキストとは何か、依存性注入などです。Spring Beanから新しいコンテキストを再作成してリポジトリを検索しますこの新しい文脈は完全に間違っています。 –

答えて

1
ApplicationContext context = new ClassPathXmlApplicationContext("beans1.xml"); 
    repository = context.getBean(UserRepository.class); 

それぞれのリクエストで新しいコンテキストを作成していますが、これは本当に間違った戦略です。

最初の修正として、コントローラに新しいコンテキストを作成しないでください。依存関係注入を使用する必要があります。

@Autorwired 
private UserRepository userRepository; 
@RequestMapping(value = "/jpadata1", method = RequestMethod.GET) 
public String jpadata1(ModelMap map) {   
    Iterable usrs = userRepository.findByName("shahzad"); 
} 
+0

ありがとう、春の新しいアドバイスありがとう、本当にこれは私が私がApplicationContextで恐ろしいことをしていることを発見し、基本を辿っています。これを指摘してくれてありがとう。しかし、なぜ私はレコードを取得していない私の元の質問に答えることができますか? –

+0

多くの理由があるかもしれません。多分あなたはgithubであなたのプロジェクトを公開したいのですか? –

0

ゴーにJPA_UsersクラスとIDEは、その後のアウトラインを入力し、あなたが持っている、これまでどのようなフィールド名/名前ためゲッター値であるかどうか確認するよう、あなたは日食を使用している場合、 pojoクラス。

リポジトリ層でも、注釈の下にこれを試してみてください。プライマリIDがかロングタイプである

org.springframework.transaction.annotation.Transactional 
@Transactional 

だけでなく、チェックあなたのPOJOクラス。

関連する問題