#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. Да, это именно то, что я сделал, и это прекрасно работает, как я и сказал в своем комментарии 😉 Спасибо!