Я создаю подпружиненный бэкэнд с аннотациями из javax.persistence.*
и postgresql
базы данных.У меня есть «Задача» POJO, которая принадлежит «Чрезвычайной ситуации», поэтому я хочу сделать запрос «Задачи» после публикации и сохранить его, но не знаю, как установить «аварийный_идентификатор» без необходимости искать«Emergency» и установка его в «Task».
Это мой объект Task:
@Entity
@Table(name = "tasks")
public class Task {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
private String title;
private String description;
private int priority;
private boolean status;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "emergency_id", nullable = false)
@JsonIgnore
private Emergency emergency;
// Getters and setters
}
И это мой TaskController
@RestController
@CrossOrigin(origins="http://localhost:8080")
@RequestMapping(value = "/tasks")
public class TaskController {
private TaskRepository taskRepository;
@Autowired
public TaskController(TaskRepository taskRepository) {
this.taskRepository = taskRepository;
}
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public List<Task> listTaks() {
return (List<Task>) this.taskRepository.findAll();
}
@RequestMapping(value="/post", method = RequestMethod.POST)
@ResponseBody
public Task createTask(@RequestBody Task task) {
return this.taskRepository.save(task);
}
}
Я отправляюJSON с данными «Задачи» из внешнего интерфейса, созданного с помощью vue.js.
Единственный способ, которым я думаю о сохранении, - это моя «Задача» - это отправка «emergency_id» через параметр url, затемв методе «createTask» найдите эту «Emergency», установите для нее новую проанализированную «Task», а затем выполните «taskRepository.save (task)», но это было бы неэффективно.Заранее спасибо.