此Spring数据查询无效

时间:2016-06-16 12:24:46

标签: spring spring-data-jpa data-access

这是我的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 个答案:

答案 0 :(得分:1)

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

您正在为每个请求创建一个新的上下文,这是一个非常错误的策略。

作为第一个更正,不要在Controller中创建新的Context,您应该使用依赖注入。

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

答案 1 :(得分:0)

转到 JPA_Users 类,如果您使用 eclipse 作为ide,请输入outline并检查 getter value < / strong>对于字段名称/名称您在pojo类中拥有的内容。

在Repository层中,请尝试以下注释:

org.springframework.transaction.annotation.Transactional
@Transactional

除了检查你的pojo类主要ID 是否类型