У меня есть таблица сущностей со следующей конфигурацией
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ORDER_SEQ")
@SequenceGenerator(sequenceName = "SEQ_ORDERS", allocationSize = 1, name = "ORDER_SEQ")
private Long id;
, как вы можете видеть, я использую последовательность для генерации идентификатора заказа таблицы.
Моя последовательность:
создать или заменить TRIGGER "TR_ORDERS" перед вставкой в "ORDERS" для каждой строки, если: NEW. "ID" равен нулю, затем выберите CONCAT (TO_CHAR (Sysdate, 'YYMMDD'), "SEQ_ORDERS" .nextval) в: NEW. "ID" из двойного;конец если;end;
Если я запускаю приложение, то идентификатором, назначенным новому заказу, будет число, например 3, например.
Однако я хотел бы использовать формат последовательностей CONCAT(TO_CHAR(Sysdate, 'YYMMDD'),"SEQ_ORDERS".nextval
, тогда результат должен быть таким:
Это происходит из-за того, что мой идентификатор не равен нулю, тогда база данных не использует последовательность, как я могу это исправить, не меняя последовательность.Первая проблема заключается в том, что я не могу вставить ордер с нулевым значением, но если у меня есть ненулевой идентификатор, база данных не использует правило последовательности для сопоставления даты с идентификатором ...