У меня есть две таблицы, как:JPA/Hibernate: Создание идентификатора транзакции, специфичный для транзакции и установки в JPA родителя/потомок лицо
User [ UserId, FirstName, LastName, AddressId (#FK), UITransactionId ]
Address [ AddressId, city, state, UITransactionId]
UITransactionId является захватом конкретных изменений транзакций. Например, у меня есть страница добавления, где я могу заполнить имя пользователя, фамилию и адрес. И если я сохраню пользователя ниже, записи будут добавлены в таблицу.
User [ U1, Narendra, Verma , A1 , 1234 ]
Address [ A1, Pune, MH, 1234]
UITransactionId «1234» может рассматриваться как идентификатор транзакции и вошел в обе таблицы в качестве пользовательской информации и адреса сохраняются в виде одной транзакции.
Теперь, если я обновлю имя пользователя и адрес:
User [ U1, NarendraEdit, Verma , A1 , 1255]
Address [ A1, PuneEdit, MH, 1255]
На этот раз «1255» Id будет представлять по мере внесения изменений как в таблице с одной транзакции.
Теперь Если изменить только адрес и сохранить информацию о пользователе:
User [ U1, Narendra, Verma , A1 , 1255 ]
Address [ A1, Pune, MHEdit, 1295] //Only this table is updated
На этот раз «1295» должен перейти в адресную таблицу только Becase мы не обновили информацию о пользователях, но только адрес.
Есть ли способ, с помощью которого я могу сгенерировать идентификатор транзакции, специфичный для транзакции JPA, и установить в родительские/дочерние объекты JPA?
@Transactional(readOnly = false, isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class })
public void saveUser(UserVO userVO) {
// Setting transaction Id into User/Address Entity
// Call dao layer to save/update entity
}
Существует один способ, что я могу генерировать случайное число услуг при совершении сделки и установить явно каждый объект при сохранении/обновления конкретной организации. Но этот подход потребует установки UITransactionId в каждом месте для каждого объекта. Есть ли правильный способ достичь этого?