Двунаправленные поля - автоматическое обновление? - PullRequest
1 голос
/ 26 марта 2012

возможно ли автоматическое обновление двунаправленных полей при изменении одной стороны?

class Customer {

    @OneToManycascade=ALL, mappedBy="customer")
    public list<Order> orders;
}

class Order {

    @ManyToOne
    private Customer customer;
}

Если я задаю поле клиента в классе Order, нужно ли мне также выполнять добавление (заказ) в список заказов класса Customer? Или можно как-нибудь автоматически обновить другую сторону?

ти

1 Ответ

1 голос
/ 26 марта 2012

Я бы сделал это, добавив Заказ к Заказчику, а затем сохранив Заказчика, который автоматически сохранит «Собственную сторону» Заказа.

Order newOrder = new Order();

customer.orders.add(newOrder);
order.setCustomer(customer);
customerDao.persistOrMerge(customer);

В зависимости от используемой вами реализации (JPA, Hibernate..etc) вам также может понадобиться добавить клиента в заказ.Но каскадирование должно позаботиться об этом в большинстве реализаций.Я лично не буду полагаться на определение того, что реализация сделает для вас, хотя и добавлю обеим сторонам и сохраню их таким образом.Лично я бы всегда всегда сохранял несобственную сторону.Но, опять же, в зависимости от реализации, которая также может быть необязательной.

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