Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622

Связанная таблица и автоинкремент в Spring

13.09.2018, 09:51. Показов 1241. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется база (картинка внизу) в которой есть связанные таблицы student и disciplines. Связаны таблицы через disciplines_to_students.
Когда добавляется в базу очередной студент, то из таблицы disciplines достаются несколько вручную записанных записей и посылаются опять в нее же контроллером примерно так
Java
1
2
3
4
5
6
7
...
    @RequestMapping(value = "/addStudent", method = RequestMethod.POST)
    public String addStudent(@ModelAttribute("student") Student student, HttpServletRequest request ) {
 
        student.setDisciplines(disciplineDAO.getAllDisciplines());
        studentDAO.addStudent(student);
...
В Entity Student
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
@Entity(name = "Student")
@Table(schema = "public", name = "students")
public class Student extends Person {
...
    @ManyToMany(cascade = { CascadeType.ALL } )
    @LazyCollection(LazyCollectionOption.FALSE)
    @JoinTable(
            name = "disciplines_to_students",
            joinColumns = { @JoinColumn(name = "student_id") },
            inverseJoinColumns = { @JoinColumn(name = "discipline_id") }
    )
    private List<Discipline> disciplines;
...
В Entity Discipline
Java
1
2
3
4
5
6
7
8
9
...
@Entity
@Table(schema = "public", name = "disciplines")
public class Discipline {
 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
...
По идее в таблицу disciplines, поскольку она имеет автоинкремент id должна просто добавиться запись с последующими id.
При этом добавится и запись и в связанную таблицу disciplines_to_students.
На практике запись добавляется только в disciplines_to_students. В disciplines все остается на своих местах.
То, что запись в disciplines остается одна и та же не помеха до тех пор пока нужно удалить запись из таблицы students.
При удаленни, если имеется несоответствие записей в таблицах disciplines и с ней связанной disciplines_to_students то hibernate ругается и ничего не удаляется.
Подскажите пожалуйста как исправить ситуацию.
Миниатюры
Связанная таблица и автоинкремент в Spring  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.09.2018, 09:51
Ответы с готовыми решениями:

Spring MVC. 404 ошибка при включении Spring Data JPA в проект
Добрый день. Есть простой шаблонный проект с использованием Spring MVC и Maven. С зависимостями Spring MVC проект собирается нормально и...

задания по spring core и spring mvc для новичков
Какие задания можно предложить новичкам для выполнения после знакомства их с spring core и mvc ?

Перевод проекта из Spring Maven в обычный Spring MVC
Здравствуйте. Подскажите, реально ли взять готовый проект, например -...

3
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
13.09.2018, 11:37  [ТС]
Таблицы
Миниатюры
Связанная таблица и автоинкремент в Spring  
Изображения
 
0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
13.09.2018, 15:00  [ТС]
Метод удаления
Java
1
2
3
4
5
6
7
...
    public void deleteStudent (long id) {
        Session session = sessionFactory.getCurrentSession();
        session.delete(getStudentById(id));
        session.flush();
    }
...
0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
14.09.2018, 11:36  [ТС]
Проблема решилась. Нужно убрать каскадирование
Java
1
cascade = { CascadeType.ALL }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.09.2018, 11:36
Помогаю со студенческими работами здесь

Jetty embedded + Spring MVC + Spring Security
Добрый день. По роду работы приходилось писать на JavaSE, в том числе и сложные клиент/серверные программы. Использовал Netty, Apache...

Spring: а как вы разрешаете зависимости для spring ?
Прикручиваю авторизацию к своему мини-серверу и таки понимаю что я 5 минут ищу решение и 15 минут ищу куда переехала вон та библиотека в...

Spring Framework - запуск примеров Spring
Здравствуйте, уважаемые форумчане, хочу освоить Spring Framework, прошу помощи у тех, кто знаком с этой технологией. Собственно есть...

Spring. Тесты и Spring-security
Вопрос из области почему так. Есть у меня такой вот тест: @ContextConfiguration(locations =...

Spring mvc spring jdbc
Простое веб приложение с использованием Spring mvc + jdbc(JdbcTemplate). Можно добавить запись в таблицу или вывести список данных из...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru