#mysql #maven #jpa #eclipselink #amazon-aurora
Вопрос:
Мы сталкиваемся с особой проблемой, иногда данные двух таблиц (родительской и дочерней) исчезают или автоматически удаляются все данные. Пожалуйста, найдите следующие конфигурации
1)Сервер БД — — — — > База данных AWS Aurora (MySQL 5.6) версии 1.22.2
2)JPA Eclipselink — — — — > версия 2.7.4
3)Сопоставление JPA
@OneToMany(MappedBy="transactions",cascade={CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REFRESH}
@CascadeOnDelete
@JSonIgnore
private List<ProductMaster> productMaster;
Все данные удаляются из productMaster и транзакций после выполнения некоторых операций CRUD.
Мы не смогли выяснить, как это происходит.
Примечание:-Последние 7 лет он отлично работает без каких-либо проблем. Если какие-либо общие изменения зависимостей в pom.xml, вышеописанная проблема произойдет?
Комментарии:
1. какие именно данные и когда они пропадают — я не знаю никаких зависимостей, которые могли бы вызвать это, но что такое аннотация «CascadeTypeOnDelete»? Это не аннотация EclipseLink/JPA. Вы имели в виду использовать CascadeOnDelete EclipseLink?
2. его каскад не удален , по ошибке я неправильно набрал… это из-за @cascadeOnDelete ?
3. Столько лет все шло гладко… последнюю неделю это происходит случайным образом.
4. CascadeOnDelete сообщает EclipseLink, что в вашей БД установлен параметр «ПРИ УДАЛЕНИИ КАСКАДА» на fk, и удаляет записи в любое время, когда родительский элемент удаляется без необходимости JPA. Вам нужно будет отследить все инструкции в базе данных, чтобы понять это — если приложение работало нормально, это могло быть что-то другое, получающее доступ к данным и связывающееся с ними, и сама база данных может провести аудит. JPA позволяет вам делать с данными все, что вы хотите, в том числе удалять и удалять ссылки на них, поэтому в вашем приложении может быть указан какой-то ранее неиспользуемый путь к коду/данным.