代码之家  ›  专栏  ›  技术社区  ›  dplesa

给定的id与Spring数据不能为空

  •  0
  • dplesa  · 技术社区  · 7 年前

    我正在开发一个用 Spring Framework 5 ,我也在使用 Spring Data 访问 PostgreSQL 数据库,我有一个奇怪的问题,有时在查询数据库时会发生。

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

    然后 MyMain函数 再次要求数据库获取具有相同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 回复  |  直到 7 年前