【发布时间】:2019-07-16 03:02:01
【问题描述】:
我正在使用 JPA 开发 Spring Boot 项目。
我想知道的是 repository.findById(id) 方法返回 null,而数据在 DB 中可用。
函数save() 和findAll() 工作正常。当我在 junit 测试环境中运行相同的代码时,它完全可以工作。如果数据是硬编码的,比如memberRepository.findById("M001");,它可以正常工作。
实体
@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> {
}
应该返回成员对象,但它是空的。
【问题讨论】:
-
也许我遗漏了一些东西,但我到处看到“它有效”、“它也有效”等。它什么时候不有效?
-
打印
id并检查其中是否有空格 -
打印 ID 不是空格。它具有价值
-
@kartik 也不例外。 “它有效”意味着返回成功(不是 null )。
-
@Jin-gukPark 嘿,你能解决这个问题吗?我也面临同样的问题
标签: java jpa spring-data-jpa