Весенняя загрузка и переход в спящий режим : обновите все строки столбца, в которых запись равна нулю

#sql #spring-boot #hibernate #loops

Вопрос:

Я создал запрос, который выбирает всех пользователей, у которых столбец равен нулю :

 @Query("SELECT user from User user where user.maths is null")
List <User> findByMathWhereNull();
 

Теперь я хотел бы рассчитать некоторые баллы для каждого из них простым методом :

 public int calculate(User user){
        int maths = calculateByResults(user);
        maths  = calculateByScore(user.getId());
        maths  = calculateByBonus(user.getBonus());
        return maths;
    }
 

Теперь я хотел бы установить математическую переменную для каждого пользователя:

 public void saveMaths() {
        List<User> users = userRepository.findByMathWhereNull();
        
        // TODO
        // for (maths : user) {do something}
 

как я могу поместить каждый результат по математике в правильный столбец ?

ИЗМЕНИТЬ — РЕШЕНИЕ:

 public void saveIndiceFiabilite() {
        List<User> users = userRepository.findByMathWhereNull();

         for (User user : users) {
             int math = calculateMaths(user);
             user.setMahs(maths);
             userRepository.updateUser(maths, user.getId());
         }

    }
 

Комментарии:

1. Хорошо, вот решение (отредактируйте сообщение)

Ответ №1:

Вы должны настроить параметры для каждого пользователя следующим образом:

     public void saveMaths() {
    List<User> users = organismeRepository.findByMathWhereNull();
    
    // TODO
       for(User user : users){
           int math = calculate(user);
           user.setMath(math);
       }
    
 

Комментарии:

1. Да, это именно то, что я сделал, и это прекрасно работает, как я и сказал в своем комментарии 😉 Спасибо!