Spring Data JPA无法找到具有给定名称的属性 [英] Spring Data JPA Unable to locate Attribute with the given name
问题描述
我试图在Spring Boot
上使用Spring Data JPA
,但一直出错,我无法弄清问题所在:
I was trying to use Spring Data JPA
on Spring Boot
and I kept getting error, I can't figure out what the problem is:
无法找到具有给定名称[firstName]的属性 此ManagedType [com.example.h2demo.domain.Subscriber]
Unable to locate Attribute with the the given name [firstName] on this ManagedType [com.example.h2demo.domain.Subscriber]
FirstName在我的实体类中声明.我之前在其他项目中使用过DAO的服务类,并且运行良好.
FirstName is declared in my entity class. I have used a service class with DAO before with different project and worked perfectly.
我的Entity类(getter和setter也在该类中):
My Entity class (getters and setters are also in the class) :
@Entity
public class Subscriber {
@Id @GeneratedValue
private long id;
private String FirstName,LastName,Email;
public Subscriber(long id, String firstName, String lastName, String email) {
this.id = id;
this.FirstName = firstName;
this.LastName = lastName;
this.Email = email;
}
}
...
我的存储库类
@Component
public interface SubscriberRepository extends JpaRepository<Subscriber,Long> {
Subscriber findByFirstName(String FirstName);
Subscriber deleteAllByFirstName(String FirstName);
}
我的服务等级
@Service
public class SubscriberService {
@Autowired
private SubscriberRepository subscriberRepository;
public Subscriber findByFirstName(String name){
return subscriberRepository.findByFirstName(name);
}
public Subscriber deleteAllByFirstName(String name){
return subscriberRepository.deleteAllByFirstName(name);
}
public void addSubscriber(Subscriber student) {
subscriberRepository.save(student);
}
}
我的控制器类:
@RestController
@RequestMapping("/subscribers")
public class SubscriberController {
@Autowired
private SubscriberService subscriberService;
@GetMapping(value = "/{name}")
public Subscriber findByFirstName(@PathVariable("name") String fname){
return subscriberService.findByFirstName(fname);
}
@PostMapping( value = "/add")
public String insertStudent(@RequestBody final Subscriber subscriber){
subscriberService.addSubscriber(subscriber);
return "Done";
}
}
推荐答案
尝试将private String FirstName,LastName,Email;
更改为private String firstName,lastName,email;
应该可以.
findByFirstName
试图按照约定查找不存在的字段firstName
.
findByFirstName
in SubscriberRepository
tries to find a field firstName
by convention which is not there.
这篇关于Spring Data JPA无法找到具有给定名称的属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!