У меня есть база данных с автогенерированным первичным ключом. Соответствующая запись JPA ниже:Получите идентификационную информацию перед сохранением в JPA
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(unique=true, nullable=false)
@JsonProperty("item_id")
private Long id;
Теперь у меня есть еще одно поле Строка, в которой мне нужно добавить идентификатор, прежде чем вставить его в БД. Возможно ли получить значение идентификатора перед введением значения в базу данных? Я видел на некоторых сообщениях, что я могу очистить объект. Но я не уверен, что это будет работать в моем сценарии. Я новичок в JPA, поэтому я не знаю, как делать флеш.
Спасибо.
Я думаю, вы не можете, потому что у каждой СУБД есть своя стратегия генерации уникальных идентификаторов. То, что вы можете сделать, это [1] сначала создать объект, а затем обновить значение на основе сгенерированного идентификатора в той же транзакции или [2], генерируя уникальный идентификатор в приложении, используя что-то вроде UUID – Leo
. Идентификатор гарантированно будет сгенерирован во время очистки ('EntityManager # flush()'). Если этого не произойдет, то ваш код, скорее всего, не сделает то, что он должен. – Tiny