2012-01-20 4 views
0

У меня есть 2 объекта определен:Hibernate каскадного обновления (обратный/mappedBy)

class Customer 
{ 
    @OneToMany(mappedBy="customer", fetch=FetchType.LAZY, cascade={CascadeType.ALL}) 
    @JoinColumn(name="ORDER_ID", nullable=false) 
    private Set<Order> orders; 
} 


class Order 
{ 
    @ManyToOne 
    @JoinColumn(name="CUSTOMER_ID", nullable=false, insertable=true, updatable=false) 
    private Customer customer; 
} 

Один клиент может иметь много заказов.

В моей логике я изменю свойство Клиента и создаю новый заказ для клиента. Затем я хочу сохранить новый созданный заказ в базе данных без обновления клиента.

Но в настоящее время, когда я сохраняю (заказываю), он также обновит клиента. Как вставить заказ без обновления клиента?

Значит, это сопоставление от одного до многих. Я изменил один объект и создал один «много» объект. Я хочу сохранить объект «many» без обновления «одного» объекта.

+0

Покажите нам свой код. Я не понимаю, почему сохранение нового заказа изменило бы клиента. –

+0

Это поможет вам немного больше http://www.mkyong.com/hibernate/different-between-cascade-and-inverse/ – Victor

ответ

0

В этом случае я предпочитаю хранить «много» объекта с идентификатором объекта «один», указанным в курсе, если вы уже знаете его. Попробуйте сохранить новый заказ с указанным CUSTOMER_ID. Он добавляет в объект Customer в следующий раз, когда он был загружен.

Смежные вопросы