Как только вы сохранили объект, вы сможете вызывать getId () или любой другой столбец @ID, чтобы вы могли вернуть его из вашего метода. Вы также можете сделать недействительным кеш первого уровня Hibernate и получить его снова.
Однако, для переносимости, вы можете рассмотреть использование Hibernate с генерацией идентификатора стиля последовательности. Это облегчит переход от MySQL, если вам когда-нибудь понадобится. Конечно, если вы используете этот стиль генератора, вы сможете сразу получить идентификатор, потому что Hibernate должен разрешить значение столбца, прежде чем он сохранит объект:
@Id
@GeneratedValue (generator="MY_SEQ")
@GenericGenerator( name = "MY_SEQ",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@Parameter(name = "sequence_name", value = "MY_SEQ"),
@Parameter(name = "initial_value", value = "1"),
@Parameter(name = "increment_size", value = "10") }
)
@Column ( name = "id", nullable = false )
public Long getId () {
return this.id;
}
Это немного сложнее, но это то, что вы можете вырезать и вставлять, кроме изменения имени SEQUENCE.