Как сохранить внешний ключ без установки сопоставленного объекта - PullRequest
0 голосов
/ 22 сентября 2019

Я создаю подпружиненный бэкэнд с аннотациями из 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)», но это было бы неэффективно.Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...