Код: Выделить всё
@Entity
public class Dog {
private Long id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "dog_id", referecedColumnName = "id")
private Set barks;
}
< /code>
и < /p>
@Entity
public class Bark {
private Long id;
private Long time;
}
< /code>
Это однонаправленное отношение.@PostMapping("start_barks")
public void starBarks(@RequestParam(name = "dog_id") Long id) {
this.dogService.startBarks(id);
}
< /code>
и в службе: < /p>
public void startBarks(long dogId) {
Dog dog = this.dogRepository.findById(dogId);
this.barkManager.start(dog);
}
Код: Выделить всё
@Component
public class BarkManager {
@Autowired
private DogRepository dogRepository;
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(50);
public void start(Dog dog) {
scheduler.scheduleAtFixedRate(() -> {
executeBark(dog);
}, 10, 5, TimeUnit.SECONDS);
}
private void executeBark(Dog dog) {
Bark bark = new Bark(System.currentTimeMillis());
dog.getBarks().add(bark);
// so that the barks are saved
Dog savedDog = this.dogRepository.save();
}
}
Что было бы лучшим решением для этой проблемы?
Подробнее здесь: https://stackoverflow.com/questions/795 ... y-then-sav