如何从现有的ORACLE序列生成实体的ID?

时间:2014-01-31 12:40:43

标签: java jpa persistence sequence jpql

我有一个表(很久以前),称之为 TABLE_A ,我有一个实体类用于此表:

@Entity
@Table(name = "TABLE_A")
public class TableA implements Serializable {
    @Id
    @Basic(optional = false)
    @Column(name = "ID")
    //what else should I write here, to get the value from the existing sequence (seq_table_a_id) from database?
    private Long id;

    @Basic(optional = false)
    @Column(name = "VALID_TO_DT")
    private String name;

    getters/setters...
}

我很久以前在 ORACLE 中为此表创建了一个序列,我想为新项目 ID提供值从这个序列。我应该如何使用注释在java实体中编写此代码?如果你能为我的代码编写一个例子,那将会很有帮助!

我应该在 persistance.xml 中写下其他内容吗?

现有序列的名称为:seq_table_a_id

1 个答案:

答案 0 :(得分:6)

您应该检查注释@GeneratedValue@SequenceGenerator

@Id
@GeneratedValue(generator="seqGen")
@SequenceGenerator(name="seqGen",sequenceName="seq_table_a_id", allocationSize=1)
private Long id;

Check this link