我有一个映射的实体,我想详细地指出它的序列。所以我有以下映射:
@Entity
@Table(schema = DbConstants.SCHEMA_PUBLIC, name =
DbConstants.PUBLIC_TABLE_TEST)
public class TestEntity implements Serializable {
private static final long serialVersionUID = 6284010266557287786L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "test")
@SequenceGenerator(schema = DbConstants.SCHEMA_PUBLIC, name = "test", sequenceName = "test_id_seq")
private Integer id;
}
问题是,如果我未在@SequenceGenerator批注中包括分配大小,则这些实体似乎具有-49 + nextval('test_id_seq':: regclass)形式的ID。添加新实体也会增加test_id_seq。我已经比较了休眠时使用的sql,无论是否使用了分配大小,它都是完全相同的。
1)这是怎么发生的?
2)在休眠状态下似乎使用相同的sql时,数据库id如何最终变得如此不同?