Spring Data中给定的id不能为null

时间:2019-01-30 08:50:50

标签: spring hibernate jpa spring-data-jpa spring-data

我正在开发用Spring Framework 5编写的应用程序,我也在使用Spring Data访问PostgreSQL数据库,但是我遇到一个奇怪的问题,有时查询数据库。

简而言之,我有一个包含myMainFunction的服务。该函数从控制器中调用,该函数调用myFunction,后者计算并设置对象的ID。 myFunction然后还查询数据库以查找数据库中是否已存在具有计算所得ID的对象。

然后myMainFunction再次查询数据库以获取具有相同ID(如果存在)的对象。这是有时抛出java.lang.IllegalArgumentException: The given id must not be null!的行。

我不明白为什么会这样,为什么有时而不是一直都在发生?

这是导致问题的“伪代码”:

publi class MyService {
    ...

    public myMainFunction(MyObject object) {
        ...
        myFunction(object);
        Optional<MyObject> oldObject = objectRepository.findById(object.getId());
        ...
    }


    private void myFunction(MyObject object) {
        ...
        object.setId(calculateId(...));
        Optional<MyObject> existingObject = objectRepository.findById(object.getId());
        ...
    }

    ...

}

0 个答案:

没有答案