小编Jin*_*ark的帖子

JPA Repository.findById() 返回 null 但该值存在于 db

我正在使用 JPA 开发 Spring boot 项目。

我想知道的是 repository.findById(id) 方法返回 null,而数据在数据库中可用。

功能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.....
Run Code Online (Sandbox Code Playgroud)

控制器

    @ResponseBody
    @RequestMapping(value="/checkIdDuplicate", method=RequestMethod.POST)
    public boolean checkIdDuplicate(@RequestBody String id) {

       return memberService.isExistByUserId(id);
    }
Run Code Online (Sandbox Code Playgroud)

会员服务

    public boolean isExistByUserId(String id) {
        Optional<DfMember> member = memberRepository.findById(id);
        return member.isPresent();
    }
Run Code Online (Sandbox Code Playgroud)

存储库

public interface MemberRepository extends CrudRepository<DfMember, String> {
    
}
Run Code Online (Sandbox Code Playgroud)

应该返回成员对象,但它为空。

java jpa spring-data-jpa

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×1

jpa ×1

spring-data-jpa ×1