Note that there are some explanatory texts on larger screens.

plurals
  1. POhibernate oracle sequence produces large gap
    primarykey
    data
    text
    <p>I am using hibernate 3 , oracle 10g. I have a table: subject. The definition is here</p> <pre><code>CREATE TABLE SUBJECT ( SUBJECT_ID NUMBER (10), FNAME VARCHAR2(30) not null, LNAME VARCHAR2(30) not null, EMAILADR VARCHAR2 (40), BIRTHDT DATE not null, constraint pk_sub primary key(subject_id) USING INDEX TABLESPACE data_index ) ; </code></pre> <p>when insert a new subject, sub_seq is used to create an subject id, the definition is here</p> <pre><code>create sequence sub_seq MINVALUE 1 MAXVALUE 999999999999999999999999999 START WITH 1 INCREMENT BY 1 CACHE 100 NOCYCLE ; </code></pre> <p>the Subject class is like this:</p> <pre><code>@Entity @Table(name="ktbs.syn_subject") public class Subject { @Id @Column(name="subject_id") @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SUB_SEQ") @SequenceGenerator(name="SUB_SEQ", sequenceName = "SUB_SEQ") private long subjectId; private String fname; private String lname; private String emailadr; private Date birthdt; } </code></pre> <p>in the subject table , there have been 4555 subjects in the database loaded by plsql scripts from excel and the sub_sequence worked fine. subject ids range from 1--4555.</p> <p>however, when i added a subject from my application using hibernate, the sequence number jumped to 255050. After several days running, the subject ids generated by hibernate look like this</p> <pre><code>270079 270078 270077 270076 270075 270074 270073 270072 270071 270070 270069 270068 270067 270066 270065 270064 270063 270062 270061 270060 270059 270058 270057 270056 270055 270054 270053 270052 270051 270050 265057 265056 265055 265054 265053 265052 265051 265050 260059 260058 260057 260056 260055 260054 260053 260052 260051 260050 255067 255066 255065 255064 255063 255062 255061 255060 255059 255058 255057 255056 255055 255054 255053 255052 255051 255050 4555 4554 4553 . . . . 1 </code></pre> <p>There are several large gaps: 4555 to 255051, 255067 to 260051, 265057 to 270051</p> <p>this is a waste and not a desired behavior.</p> <p>does anyone know why this happens and hot to fix it</p> <p>Thanks</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload