powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate ManyToMany удаление связанных данных при обнавлении
4 сообщений из 4, страница 1 из 1
Hibernate ManyToMany удаление связанных данных при обнавлении
    #37750298
old.rubl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
@javax.persistence.Table(name = "table_1")
@Entity
public class Table1Entity{
    private int Id;
    private List<Table2Entity> table2;
   

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    public int getId() { return Id;}
    public void setId(int Id) { this.Id = Id;}

   @ManyToMany(cascade =CascadeType.ALL,fetch = FetchType.LAZY)
    @JoinTable(name = "table_list",
            joinColumns = @JoinColumn(name = "table1_id"),
            inverseJoinColumns = @JoinColumn(name = "table2_id")
    )
    @Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
     public List<Table2Entity> getTable2() { return table2; }
     public void setTable2(List<Table2Entity> table2) { return this.table2 = table2; }

}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
@javax.persistence.Table(name = "table_2")
@Entity
public class Table2Entity{
    private int Id;
    private List<Table1Entity> table1;
   

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    public int getId() { return Id;}
    public void setId(int Id) { this.Id = Id;}

   @ManyToMany(cascade =CascadeType.ALL,fetch = FetchType.LAZY)
    @JoinTable(name = "table_list",
            joinColumns = @JoinColumn(name = "table2_id"),
            inverseJoinColumns = @JoinColumn(name = "table1_id")
    )
     public List<Table1Entity> getTable1() { return table1; }
     public void setTable1(List<Table1Entity> table1) { return this.table1 = table1; }

}



описано 3 таблици, table_1, table_2 связаны "многие ко многим", table_list связующая.
Добавление записей, все нормально, удаление объекта Table1Entity, каскадно удаляется и Table2Entity

НО, если Table1Entity.setTable2(null);
то в связующей таблице (table_list) все удалено, а в table_2 записи не удалены.

Как сделать, что бы в table_2 записи тоже удалялись?
...
Рейтинг: 0 / 0
Hibernate ManyToMany удаление связанных данных при обнавлении
    #37750463
oneHalf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чета вы не поняли про каскадирование - это когда вы удаляете сущность, а следом за ней удаляется связаная сущность.
Table1Entity.setTable2(null) - этим никакие сущности не удаляются, только связи. Так что все правильно отрабатывает строго по теории.
Вопрос тогда, как я понимаю - как при удалении связей форсировать удаление еще и сущностей?
Как такой изврат в мапинге прописать я не знаю, но вручную это делать никто не запрещает.
...
Рейтинг: 0 / 0
Hibernate ManyToMany удаление связанных данных при обнавлении
    #37750501
old.rubl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oneHalf...
Как такой изврат в мапинге прописать я не знаю, но вручную это делать никто не запрещает.В ручную это понятно, просто объект прилетает посложнее структурой чем описанный и перебирать все его связи, сопоставляя с тем, что в базе...
зачем тогда ORM.

Должно быть что то....
должно!
...
Рейтинг: 0 / 0
Hibernate ManyToMany удаление связанных данных при обнавлении
    #37750508
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
old.rubl,
даже при связи много ко много, всё равно есть главная сущность.
Напр.
Заказчики - Заказы - Товар
Т.е. по БЛ не удаляют главную сущность (Заказчики). Она остаётся в справочнике организации.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate ManyToMany удаление связанных данных при обнавлении
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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