首页 > 解决方案 > 方法引发了“javax.persistence.EntityNotFoundException”异常。无法评估 domain.MerchantTag$HibernateProxy$zHiEXWeN.toString()

问题描述

朋友们。我有一些问题。我希望你能帮助我。我有商人表、模型、存储库和服务。

商人.java

@Data
@Entity
@Table(name = "Merchant")
public class Merchant {

    @Id
    private String term;
    private String tag;
    @Column(name = "tag_full")
    private String tagFull;
}

MerchantRepository.java

public interface MerchantRepository extends JpaRepository<Merchant, String> {
}

MerchantService.java

@Service
@RequiredArgsConstructor
public class MerchantService {

    private final MerchantRepository merchantRepository;

    public Merchant getOne(String term) {
        return merchantRepository.getOne(term);
    }
}

如果我发送表中的值,getOne 函数可以正常工作。但是如果我发送一个不在表中的值,我会得到一个错误。我该如何解决这个问题?

在此处输入图像描述 在此处输入图像描述

标签: javaspringspring-boothibernate

解决方案


你应该使用 findeOne() 而不是 getOne()。当实体可用时,我们使用 getOne()。findOne() 返回可选,应检查是否存在,使用 get() 返回实体。


推荐阅读