0

我遇到了这个非常奇怪的问题,当从 java/Hibernate 与 SqlDeveloper 工具发出时,oracle 序列返回非常不同的值。

@SequenceGenerator(name = "PARAM_ID_SEQUENCE", initialValue = 10, allocationSize = 30, sequenceName = "PARAM_ID_SEQUENCE")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PARAM_ID_SEQUENCE")
@Column(name = "PARAMETER_ID")

以上返回 1177248345。我将日志级别转到跟踪以查看正在发出的实际查询,它是:select SPS_PARAM_ID_SEQUENCE.nextval from dual。现在我从 sql developer tool 中针对相同的序列发出相同的查询,它返回:39241615它小了 2 个数量级!此外,这是我期望的准确值。

CREATED 03-OCT-14
LAST_DDL_TIME   25-JAN-18
SEQUENCE_OWNER  API
SEQUENCE_NAME   PARAM_ID_SEQUENCE
MIN_VALUE   1
MAX_VALUE   9999999999999999999999999999
INCREMENT_BY    1
CYCLE_FLAG  N
ORDER_FLAG  N
CACHE_SIZE  20
LAST_NUMBER 39241624
PARTITION_COUNT 
SESSION_FLAG    N
KEEP_VALUE  N

我确认两者都在相同的环境中针对相同的数据库模式等发出请求,但由于某种原因,Hibernate 获得了更高的价值。有没有人遇到过类似的问题。休眠以某种方式“填充”序列吗?

4

0 回答 0