У меня есть код, который использует JPA аннотации для создания БД первичной последовательности key.A DB используется для создания PK.Am с помощью Oracle DBJPA с SequenceGenerator и GeneratedValue
@Id
@Column(name = "rec_id", scale = 0)
@GeneratedValue(generator = "RecIdSequence", strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name = "RecIdSequence", sequenceName = "P_REC_ID_SEQUENCE")
public Long getRecordId() {
return outboundPackageRecordId;
}
Теперь мое понимание этого: Идентификатор последовательности, возвращаемый секвенсором БД, используется как rec_id. Это правильно?
DOC говорит:
Стратегия последовательности Последовательность Стратегия состоит из двух частей - определяющих последовательность имени и с использованием имени последовательности в одной или нескольких областях, в одном или нескольких классов. Аннотирование @SequenceGenerator используется для определения последовательности и принимает имя, начальное значение (по умолчанию - 1) и - размер распределения (по умолчанию - 50). Последовательность является глобальной для приложения и может использоваться одним или несколькими полями в одном или более классах . Стратегия ПОСЛЕДОВАТЕЛЬНОСТИ используются в @GeneratedValue аннотацию, чтобы прикрепить данное поле к ранее определенному имени последовательности:
@Entity
@SequenceGenerator(name="seq", initialValue=1, allocationSize=100) // Define a sequence - might also be in another class:
public class EntityWithSequenceId {
// Use the sequence that is defined above:
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")
@Id long id;
}
В отличии от AUTO и IDENTITY, стратегия ПОСЛЕДОВАТЕЛЬНОСТИ генерирует автоматическое значения, как только как новый объект объекта сохраняется (т.е. до совершить). Это может быть полезно, когда требуется значение первичного ключа ранее. Чтобы минимизировать круглые поездки на сервер базы данных, идентификаторы составляют , выделенные группами. Количество идентификаторов в каждом распределении указывается по атрибуту allocSize. Возможно, некоторые идентификаторы в данном распределении не будут использоваться. Поэтому эта стратегия делает не гарантией, что в значениях последовательности не будет пробелов.
@ Makky.Мы используем оракул DB. Также путем следующего значения u среднее значение, перенастроенное P_REC_ID_SEQUENCE, право? – user93796
Да. следующее значение возвращается из вашего P_REC_ID_SEQUENCE. – Makky