У нас есть таблица, где идентификатор генерируется триггер -JPA - первичный ключ префикс
ID = год + месяц + последовательностями
Я сопоставляюсь таблица с помощью JPA и я хотел бы для использования того же поколения PK в моем коде. Я попытался следующие варианты:
@Id
@SequenceGenerator(name = "assetSeq", sequenceName = "ASSET_SEQ")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "assetSeq")
@Transient
private long id;
, а также пытались изменить сеттер
public void setId(long id) {
String finalId=getIdPrefix()+id;
this.id = Long.parseLong(finalId);
}
private String getIdPrefix() {
DateFormat df = new SimpleDateFormat("YYYYMM");
Date today = Calendar.getInstance().getTime();
return df.format(today);
}
, но не из них работали. Я просто хочу вставить новую запись в базу данных и не хочу использовать идентификатор позже. Я использую Hibernate для JPA
Если вы используете последовательность, почему бы не генерировать значение с помощью триггера? Таким образом, вы можете гарантировать, что все клиенты всегда будут использовать сгенерированные идентификаторы из последовательности ... –
Хорошая идея, это был бы лучший подход. –
Было бы хорошо, но если бы я установил Id в переходный режим, он все еще использует и Id в инструкции insert - это был мой первый подход. – HamoriZ