Ссылочный столбец не сохраняется в однонаправленном спящем отношении один ко многим - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть объект типа заказа, который может иметь несколько пакетов отгрузки.Я использую спящий режим (5.2.10).Я хотел бы иметь однонаправленное отношение один ко многим между ними, поскольку объект пакета отгрузки не обязательно должен иметь ссылку на объект Заказа.Это работает, пока я не выполню только операцию чтения.Но если я хочу добавить новую отправку к заказу, она не удалась.

Database tables :
t_order(order_id,..)
t_package(id, fk_order_id, package_id, tracking_no, create_date)  

@Entity
@Table(name = "t_order")
public class Order implements Serializable {
    .
    .
    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "fk_order_id")
    @OrderBy("id")
    private Set<ShippingPackage> shippingPackages;
    .
    .
}
@Table(name = "t_package")
public class ShippingPackage implements Serializable{

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

    @Column(name = "package_id")
    private Long packageId;

    @Column(name = "tracking_no")
    private String trackingNo;

    ..

    @Column(name = "create_date")
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date createDate;    
    .
}

//service layer code
Order order = orderService.findByOrderNumber(orderNo);
order.getShippingPackages().add(new ShippingPackage(..));

Hibernate:
insert
into
    t_package_dispatch
    (create_date, package_id, tracking_no)
values
    (?, ?, ?)
Exception -     java.sql.SQLException: Field 'fk_order_id' doesn't have a default value

Как решить эту проблему?

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