多线程和hibernate实体id生成器

时间:2015-12-09 13:09:42

标签: java mysql multithreading oracle hibernate

最近,我已将我的实体转换为便携式。 我们喜欢我们的实体可以使用oracle数据库和mysql(在它之前只有oracle)。 之前,为了生成实体ID,我们使用SequenceGenerator,现在我们已经更改为GenericGenerator。

旧代码:

@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_1")
@SequenceGenerator(name = "SEQ_1", sequenceName = "SEQ_1",  allocationSize = 1)
public Long getId() {
    return this.id;
}

新代码:

@GenericGenerator(name="SEQ_1", strategy="org.hibernate.id.enhanced.SequenceStyleGenerator",
        parameters={
        @Parameter(name="sequence_name",value="SEQ_1"),
        @Parameter(name="optimizer",    value="seqhilo"),
        @Parameter(name="initial_value",value="1"),
        @Parameter(name="increment_size",value="1")
    })
public Long getId() {
    return this.id;
}

我的问题是,当我们处理多线程时,我们在实体创建方面有很多例外。 我们使用版本为Hibernate的3.3.2。

0 个答案:

没有答案