Для автоматической генерации id записи в базу oracle, используется встроенный триггер, ранее использовалась последовательность.
/**Системный идентификатор записи*/
@Id
@GeneratedValue
@Column(name = "ID_ISX", nullable = false, updatable = false)
private Long idIsx;
Как можно получить запись которую только что сохранил? Например, я переопределяю CrudRepository и в нем метод save(), затем я сохраняю новую сущность и сразу же вызываю получение послдней записи... Но если в после моей записи в этот момент таблица освобождается для записи из другого источника в эту таблицу, а мой запрос на получение созданной мной записи окажется вторым, то тогда я получу id чужой записи.
Или же, когда выполняется моя транзакция, то в момент записи таблица блокируется пока не выполняться операции в рамках моей транзакции и я буду уверен что получу достоверную информацию.
Ничего не блокируется. Но идентификатор вы получите именно своей записи. Механизмы получения отличаются у разных СУБД
Сборка персонального компьютера от Artline: умный выбор для современных пользователей