Предположим, у меня есть 3 Entity Model:Как лучший способ совершить транзакцию JPA в моем случае?
History.class
DetilHistory.class
Logs.class
Я должен написать свой код так:
//Create History
History h = new History(new Date(), 1, 1, 1);
h.save();
//Create Detil History
DetilHistory dh = new DetilHistory(1, 1, 1, h.id);
dh.save();
//Create Logs
Logs l = new Logs(1,1,1,dh.id);
l.save();
Я должен получить h.id первым для dh.referecendIdOfHistory. И мне нужно сначала получить dh.id для l.referecendIdOfDetilHistory.
НО, Иногда я должен изменить переменную ч или ДХ ниже этого кода, как это:
h.closeDate= new Date();
h.value = 2;
h.save();
Я делаю это для истории Detil тоже.
К сожалению, JPA не может этого сделать. Я знаю, почему JPA этого не допускает.
У меня есть вопросы о:
- отдельностоящий предприятие прошло упорствовать
- JPA не был инициализирован
- т.д.
Я решил их:
- JPAPluginStartTx(rollback)
- JPA.em().flush(); JPA.em().getTransaction().commit();
Кто-нибудь, пожалуйста, может Я как лучший способ это сделать?