powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Так правильно делать Hibernate One-To-Many
6 сообщений из 6, страница 1 из 1
Так правильно делать Hibernate One-To-Many
    #38017872
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть два класса Customer и Order, схематично:

Customer {

@OneToMany(mappedBy = "parent", targetEntity = Order.class, cascade = {javax.persistence.CascadeType.ALL}, orphanRemoval ? )
Set<Order> orders = new HashSet<>();

}

Order {

@ManyToOne()
Customer parent;

}


Оба внешних ключа отмечены not null;
Обобьет order не может существовать без Customer'a

В логике кода у меня вот такое:

1 - очистить старые значения Set orders
orders.clear()

2 - добавить в Set orders новые значения

Допустим возникает ситуация(очень часто), что все старые значения и все новые значения равны. Т.е. равны по equals и hashCode.

Существует ли механизм, при котором Hibernate не удаляет все и делает новые записи, а как бы сравнивает то что было в Set'е и то что стало.

Например, старые значения (логическое поле): 1,2,3
Новые значения: 1,2,3,4

Т.е. нужно добавить только новое значения 4 и все. В моем же случае Hibernate сначала все удаляет и потом заносит все новые значения.
...
Рейтинг: 0 / 0
Так правильно делать Hibernate One-To-Many
    #38018128
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdmочистить старые значения Set orders
что за термин "значения"?
Не перепутали с Код \ ID ?
Приведите минимальные классы для примера.
...
Рейтинг: 0 / 0
Так правильно делать Hibernate One-To-Many
    #38018553
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, "значения" = обьекты класса Order в сете Set<Order> orders равны по equals и hashCode.
значения 1,2,3,4 - это обьекты класса Order, т.е. к примеру order1,order2,order3,order4. Я для краткости обозначил просто цифрами.
...
Рейтинг: 0 / 0
Так правильно делать Hibernate One-To-Many
    #38018556
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdm, конечно не обязательно равные, могут быть и не равными) поспешил ответить) Вообщем значения просто объекты класса Order )
...
Рейтинг: 0 / 0
Так правильно делать Hibernate One-To-Many
    #38018649
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdm2 - добавить в Set orders новые значения

Допустим возникает ситуация(очень часто), что все старые значения и все новые значения равны. Т.е. равны по equals и hashCode.
хибер отслеживает уникальность в сессии на основе УНИКАЛЬНО кода или Id.
Уникальность кода обеспечиваешь либо ты руками либо он автоматом.

Поэтому "новые значения" означают НОВЫЙ код = УНИКАЛЬНЫЙ.
Поэтому:
"Допустим возникает ситуация" - не может быть.

либо приведи код КОРОТКИЙ.
...
Рейтинг: 0 / 0
Так правильно делать Hibernate One-To-Many
    #38018901
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123rdm2 - добавить в Set orders новые значения

Допустим возникает ситуация(очень часто), что все старые значения и все новые значения равны. Т.е. равны по equals и hashCode.
хибер отслеживает уникальность в сессии на основе УНИКАЛЬНО кода или Id.
Уникальность кода обеспечиваешь либо ты руками либо он автоматом.

Поэтому "новые значения" означают НОВЫЙ код = УНИКАЛЬНЫЙ.
Поэтому:
"Допустим возникает ситуация" - не может быть.

либо приведи код КОРОТКИЙ.
Я думал, что он сравнивает не по ID объекты, а через hashCode/equals (у меня там ID не учитывается). Тогда вопросов нет.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Так правильно делать Hibernate One-To-Many
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]