Оба объекта, Table1
и Table2
, помечены как @Audited
. Таблица2 -
@Audited
@Builder
@ToString
public class Table2 {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToOne
@JoinColumn(name="txnRequestId")
private Table1 txnRequest;
..
}
Я делаю обновление для обеих таблиц в Table1Repository
вот так -
@Repository
public interface Table1Repository extends JpaRepository<Table1, Long> {
@Transactional
@Modifying
@Query(nativeQuery = true, value = "UPDATE Table1 tr, Table2 ti SET tr.status=?2, ti.status=?3 WHERE tr.id=ti.txnRequestId and tr.status=?1 and tr.processAfter<now()")
int updateStatusToRequested(int oldStatus, int newStatus, Integer newTxnInfoStatus);
..
}
Мне пришлось выполнить собственный запрос, поскольку в противном случае соединение не поддерживается. Обновление работает сейчас, но записи в таблице AUD не происходят автоматически.
Что было бы элегантным способом сделать это?