I'm developing Spring boot project, using JPA.
What I wanna know is repository.findById(id)
method returns null, whereas data is available in the DB.
Functions save()
and findAll()
are working fine. When I ran the same code on junit test environment, but it completely worked. If the data is hard coded, like memberRepository.findById("M001");
, it working fine.
@Entity
@Table(name="df_member")
public class DfMember {
@Column(name="member_type")
private String memberType;
@Id
@Column(name="id")
private String id;
...columns...
...Getters/Setters.....
@ResponseBody
@RequestMapping(value="/checkIdDuplicate", method=RequestMethod.POST)
public boolean checkIdDuplicate(@RequestBody String id) {
return memberService.isExistByUserId(id);
}
public boolean isExistByUserId(String id) {
Optional<DfMember> member = memberRepository.findById(id);
return member.isPresent();
}
public interface MemberRepository extends CrudRepository<DfMember, String> {
}
Should return Member Object but it's null.
You have to change @RequestBody
to @RequestParam
. Please update your controller code as below.
@ResponseBody
@RequestMapping(value="/checkIdDuplicate", method=RequestMethod.POST)
public boolean checkIdDuplicate(@RequestParam String id) {
return memberService.isExistByUserId(id);
}