Spring - установка стороннего объекта в качестве атрибута - PullRequest
0 голосов
/ 19 октября 2019

Когда у меня есть две сущности, например:

@Entity
class Table{
   @Id
   Long id;
}


@Entity
class Order{
  @Id
  Long id;

  @OneToOne
  Table tableThisOrderBelongsTo;
}

Если я хочу создать ордер и у меня есть идентификатор таблицы, вместо того, чтобы просто разместить этот идентификатор таблицы в ордере, я должен использоватьэтот идентификатор таблицы, чтобы найти эту таблицу, а затем установить эту таблицу в порядке. Хотя в базе данных Order будет выглядеть примерно так: {Id: 1, TableId: 1}, я не могу просто сделать

Order order = new Order()
order.setId(1);
order.setTableThisOrderBelongsTo(1);

Мне нужно сделать:

Table table = tableRepoisotry.findTableById(1);
order.setTableThisOrderBelongsTo(table);

Итак, в основном, я делаю дополнительный запрос для таблицы, что довольно неудобно, так как у меня уже есть идентификатор таблицы, есть ли способ пропустить выполнение этого запроса? Должен ли ордер выглядеть следующим образом:

class Order{
@Id
Long id;

Long tableId;
}

? Все, что я прочитал, всегда имеет весь объект в качестве атрибута. Спасибо!

1 Ответ

0 голосов
/ 19 октября 2019

Мне кажется, что вы ищете EntityManager.getReference метод, который представлен в Spring Data как JpaRepository.getOne

Я также рекомендую Как работают методы find и getReference EntityManager при использовании JPA и Hibernate

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