«Таблица 1» может иметь несколько экземпляров «Таблица 2». «Таблица 2» отображается один на один с «Таблицей А». Но экземпляр для «Таблицы A» создается «Таблицей B». «Таблица 1» не всегда должна иметь запись «Таблица 2».
В таблице 2 есть два столбца, например, tb1 и tbA. tb1 ссылается на первичный ключ «Таблицы 1», а tbA - на «Таблицу А».
Если сначала сохранить данные для таблицы A, а затем данные для таблицы 1, то все будет работать нормально. Но если я сохраняю сохранение содержимого таблицы 1, в которой есть сопоставление записи таблицы 2 и записи таблицы A еще не сохранено, я получаю исключение TransientObjectException.
Я использую спящий режим и аннотации в JAVA. Я пробовал каскадные ассоциации и любые другие возможные решения, которые я мог найти в сети. Но бесполезно. Пожалуйста, добавьте некоторые идеи.
Пример: рассмотрим таблицу 1 = человек; Таблица 2 = принадлежность; Таблица A = Автомобиль; Таблица B = Производитель.
Человек может иметь много автомобилей. У автомобиля есть person_id (ссылка на Персона) и car_id (Автомобиль). Автомобиль обязательно должен иметь производителя. Теперь в моем приложении Person будет связан с автомобилем, который создан Производителем, но не сохранен (то есть car_id еще не сгенерирован). Теперь, когда я сохраняю данные сеанса в целом (как это можно сделать в моем случае), я хочу, чтобы сначала были сохранены автомобильные данные, а затем bcos данных Person, тогда TransientObjectException не возникнет. Любые предложения о том, как это сделать. Надеюсь, что пример лучше.