Сохранение объекта с однонаправленным отношением один ко многим не работает - PullRequest
0 голосов
/ 27 августа 2018

У меня есть заказ, и он может иметь много статусов. Попытка сохранить новый статус, похоже, не работает с однонаправленными отношениями. Это правильно, я не могу сохранить статус с однонаправленным отношением от заказа к статусу, как показано в моем коде? Как можно сохранить это?

Таблица: ORDER (PK_ORDER_ID, ORDER_NO)

Таблица: ORDER_STATUS (PK_ORDER_STATUS_ID, FK_ORDER_ID, STATUS)

Класс заказа, подобный этому

@Entity
@Table(name = "ORDER")
public class Order {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "PK_ORDER_ID", unique = true, nullable = false)
private Long id;

@JoinColumn(name = "FK_ORDER_ID", referencedColumnName = "PK_ORDER_ID")
private Set<OrderStatus> orderStatus;
}

Класс OrderStatus, подобный этому

@Entity
@Table(name = "ORDER_STATUS")
public class OrderStatus {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "PK_ORDER_STATUS_ID")
private Long id;

@Column(name = "STATUS")
private String status;

public OrderStatus(String status) {
    this.status = status;
}

}

Где-то другой файл

order.getStatus().add(new OrderStatus("new"));

Код базы данных для сохранения изменений -

@Transactional(TxType.REQUIRED)
public U merge(U EntityToUpdate) {
    return em.merge(EntityToUpdate);
}

выдает следующую ошибку

java.sql.SQLException: (conn:40) Field 'FK_ORDER_ID' doesn't have value
Query is: insert into ORDER_STATUS (STATUS) values (?), parameters ['new']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...