Я использую Spring Hibernate с HibernateSupportDao, когда я пытаюсь отправить несколько строк данных для хранения в моем db, он поднимает DataIntegrityViolationException
в определенной строке. Тот же самый сценарий остался в задаче в той же таблице. Я не понимаю, даже когда я использую тот же код для текущей задачи. Почему был выброшен DataIntegrityViolationException
и как я могу это исправить?Как мы можем решить DataIntegrityViolationException в Spring Hibernate?
ответ
Исключение брошено при попытке вставить или результаты данных обновления в нарушение ограничения целостности. Обратите внимание, что это не чисто реляционная концепция; большинству типов баз данных требуются уникальные первичные ключи.
В основном это означает, что hibernate пытался что-то сделать, но в базе данных возникло исключение. Наиболее распространенным случаем может быть то, что вы удаляете родителя, но не удаляете дочернего с внешним ключом этого родителя.
Каковы ваши настройки на переходный период (например, каскад)?
Когда вы сталкиваетесь с этим исключением при выборе некоторых полей из таблицы, причиной может быть длина одного из полей в инструкции select. проверьте все длины полей выбора и сравните их с описанием таблицы. любое поле нарушило бы ограничение поля.
DataIntegrityViolationException также может нарушать уникальное ограничение на базу данных (то есть альтернативный ключ). Проверьте, если ваши вставленные строки данных содержат дубликаты данных, которые нарушают такое уникальное ограничение.
Вопрос об этом. Это хорошая практика для обработки дублированных валидаций из db, а не из самого приложения? – jscherman 2015-08-04 18:30:28
если импортировать базу данных из где-то вы должны принять данных папку сервера тоже, и изменить этот данных папку в папку данных сервера.
Я обрабатываю DataIntegrityViolationException в ExceptionInfoHandler, обнаруживая вхождения БД в сообщение с первопричиной и преобразовывая его в сообщение i18n через . См. Код здесь: https://stackoverflow.com/a/42422568/548473
- 1. Как мы можем достичь взаимосвязи в hibernate
- 2. Как мы можем решить org.hibernate.hql.ast.QuerySyntaxException: Претендент не отображается
- 3. Как решить Spring Boot/Hibernate NoSuchMethodError?
- 4. ConstraintViolationException VS DataIntegrityViolationException
- 5. Как справиться с DataIntegrityViolationException весной?
- 6. Как мы можем решить, какой метод тестирования можно использовать?
- 7. Как мы можем решить, является ли шаблон структурным?
- 8. Как мы можем обновить диспетчер доверия в приложении загрузки Spring?
- 9. Как мы можем вызвать метод requestmethod = POST в Spring MVC?
- 10. Сколько способов мы можем решить проблему кучи пространства в java?
- 11. Как мы можем использовать addShutdownHook в проекте?
- 12. как мы можем сериализовать singleton? Я думаю, мы не можем
- 13. Можем ли мы решить круг-эллипс с Swift?
- 14. В Spring Framework мы можем написать jdbc в jsp
- 15. Почему градиентный спуск, когда мы можем решить линейную регрессию аналитически
- 16. Как мы можем сделать внешний вызов без текущей транзакции?
- 17. Можем ли мы решить кратчайший путь с кривой заполнения пространства?
- 18. Можем ли мы интегрировать activiti в приложение excisting spring (java)
- 19. Как мы можем разрешить параллелизм в asp.net
- 20. Hibernate Envers vs Spring AOP
- 21. мы можем реализовать Spring Autowiring в автономном приложении Java (Swing)
- 22. Ловля SQLException вместо Spring DataIntegrityViolationException в модульном тестировании
- 23. Как мы можем скрыть свойство в WebAPI?
- 24. Как мы можем инициализировать структуру?
- 25. Как мы можем реализовать Календарь?
- 26. Как мы можем перезагрузить паруса?
- 27. Как мы можем сделать демон?
- 28. Как мы можем остановить поток
- 29. Как мы можем закрыть NSFileManager?
- 30. как мы можем использовать prepareStatement()?
здесь я использую Spring hiernate Аннотации и отношения между таблицами, я поддерживал отношение ManytoOne с режимом выборки как EAGER. здесь один момент - когда я работаю над одной таблицей с некоторой другой операцией вроде: я получаю данные таблицы и вношу некоторые изменения, когда я отправляю, предыдущие целые данные должны быть удалены, а новые данные, которые я модифицирован, собираюсь хранить. эта задача успешно работала. в этом случае я также могу добавить новую строку на странице. – Naresh 2010-12-10 15:20:09