且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Spring Boot任务更新数据库中的外键

更新时间:2023-01-29 12:52:07

好的,所以在ItemService.java的ScheduledTask()方法中,控件已遍及每个部分,并且项目实例"i"也正在更新,我想我只需使用itemRepository.save(i)将其保存到数据库 下面是ScheduledTask()方法的完整实现

Okay, so in the scheduledTask() method of ItemService.java, control was reaching every part and item instance 'i' was also getting updated, I guess I just needed to save that to DB using itemRepository.save(i) Below is the complete implementation of scheduledTask() method

@Scheduled(cron="0 17 11 * * ?")
    public void scheduledTask() {
        List<Item> listOfItems = (List<Item>)itemRepository.findAll();
        System.out.println("going to update DB");
        for(Item i : listOfItems) {
            Timestamp time = new Timestamp(System.currentTimeMillis());
            if(time.equals(i.getEnd_time()) || time.after(i.getEnd_time())) {
                if(i.getUser() == null) {
                    Integer item_id = i.getItem_id();
                    Integer winner_id = itemRepository.findWinner(item_id);
                    User u= userRepository.findById(winner_id).orElse(null);

                    i.setUser(u);
                    itemRepository.save(i);//change in code, which seems to work now
                    System.out.println("printing item:");
                    System.out.println(i.getItem_description()+", "+i.getItem_name()+", "+i.getStarting_amount()+", "+i.getItem_id()+", "+i.getEnd_time()+", "+i.getStart_time()+", "+i.getUser().getUser_id());
                    System.out.println("updated");
                }
            }
        }
    }