Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 1
Регистрация: 12.05.2012
Сообщений: 41

удаление строки из смежной таблицы при обновлении сущности (связь многие ко многим)

06.04.2021, 13:09. Показов 962. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
реализована связь многие ко многим через доп.таблицу. Вопрос: почему hibernate удаляет из доп.таблицы строки с идентификаторами обновляемой сущности и как можно настроить, чтобы не удалялись строки. Например обновление полей сущности (идентификатор сущности не изменяется) генерирует такой sql код в консоль:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Updating existing actor
Hibernate: 
    /* load my.project.one.entity.Actor */ select
        actor0_.actor_id as actor_id1_0_0_,
        actor0_.birth_date as birth_da2_0_0_,
        actor0_.first_name as first_na3_0_0_,
        actor0_.gender as gender4_0_0_,
        actor0_.last_name as last_nam5_0_0_,
        actor0_.country as country6_0_0_ 
    from
        actors actor0_ 
    where
        actor0_.actor_id=?
Hibernate: 
    select
        films0_.actor_id as actor_id1_1_0_,
        films0_.film_id as film_id2_1_0_,
        film1_.film_id as film_id1_2_1_,
        film1_.country as country2_2_1_,
        film1_.duration as duration3_2_1_,
        film1_.genre as genre4_2_1_,
        film1_.name as name5_2_1_,
        film1_.producerfk_id as producer8_2_1_,
        film1_.release as release6_2_1_,
        film1_.money as money7_2_1_ 
    from
        actors_films films0_ 
    inner join
        films film1_ 
            on films0_.film_id=film1_.film_id 
    where
        films0_.actor_id=?
Actor saved with id: 8
Hibernate: 
    /* update
        my.project.one.entity.Actor */ update
            actors 
        set
            birth_date=?,
            first_name=?,
            gender=?,
            last_name=?,
            country=? 
        where
            actor_id=?
Hibernate: 
    /* delete collection my.project.one.entity.Actor.films */ delete 
        from
            actors_films 
        where
            actor_id=?
реализация соединения в сущностях:
Code
1
2
3
4
5
6
7
8
9
10
в сущности Актер
@ManyToMany(cascade = CascadeType.PERSIST)
    @JoinTable(name = "actors_films",
            joinColumns = @JoinColumn(name = "actor_id"),
            inverseJoinColumns = @JoinColumn(name = "film_id"))
    private Set<Film> films = new HashSet<Film>();
 
в сущности фильм
@ManyToMany(mappedBy = "films")
    private Set<Actor> actors = new HashSet<Actor>();
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2021, 13:09
Ответы с готовыми решениями:

удаление информации из таблицы (связь многие ко многим)
несколько таблиц с различной пронумерованной информацией создают связь многие ко многим. номера соединяются в одной таблице по выбору...

Каскадное удаление данных через связь в БД многие-ко-многим
Создал 2 таблицы, задачи и теги. Для объединения через связь многие-ко-многим использую таблицу TaskTag public class Task { ...

Связь многие ко многим между записями из одной таблицы
Существует таблица Records, где хранятся записи, характеристики записи хранятся в справочниках. запись имеет характеристики, например...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.04.2021, 13:09
Помогаю со студенческими работами здесь

Обновление данных таблицы на основе запроса (связь многие-ко-многим)
Доброго времени суток, дорогие форумчане. Появилась проблема. Есть у меня таблица sklad ...

Вывести данные из таблицы (связь многие ко многим) в checkbox ASP Bootstrap
Подскажите пожалуйста! Задача. Есть база данных - две таблицы Обращения и Ответственные, связь многие ко многим. Надо в окно...

Entity Framework 6. Code First. Связь один-ко-многим и многие-ко-многим одновременно
Здрасти. Есть таблица юзеров и объявлений. У юзера может быть множество объявлений. Здесь действует связь один-ко-многим. Но юзер также...

Создание сущности со саязью многие ко многим
Вопросы по ado.net: 2 сущности: юзер и проект связь многие ко многим. как сделать так чтобы при создании проекта в проекте...

Связь один ко многим или многие к многим
Добрового времени суток, помогите создать связь в SQL management studio. Значит есть одна таблица с названием &quot;TypeOfDocuments&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru