1. 程式人生 > >通過表的生成主鍵序列(seqence)

通過表的生成主鍵序列(seqence)

通過一個表SEQUENCE:
--序列表
CREATE TABLE SEQUENCE (
       SEQ_NAME VARCHAR2(50), /*序列名*/
       SEQ_COUNT NUMBER(8,0)  /*序列*/
)
/
程式碼如下:


@Entity
/*定義生成器,對應於SEQUENCE表中SEQ_NAME欄位為user_seq的一行*/
@TableGenerator(name="USER_TABLE_GENERATOR",
    table="SEQUENCE", pkColumnValue="user_seq",valueColumnName="SEQ_COUNT", pkColumnName="SEQ_NAME")   
@NamedQueries({
@NamedQuery(name = "User.findAll", query = "select o from User o"),
@NamedQuery(name = "User.findByUserName",
query = "select o from User o where o.userName = :userName "),
@NamedQuery(name = "User.findByUserId",
query = "select o from User o where o.id = :id ")
})
@Table(name = "USERS")
public class User implements Serializable {
    @Column(name="CANCEL_TIME")
    private Timestamp cancelTime;
    @Column(name="CREATE_TIME")
    private Timestamp createTime;
   
    @Id
/*引用生成器*/
    @GeneratedValue(strategy=GenerationType.TABLE,generator="USER_TABLE_GENERATOR")   

    @Column(nullable = false)
    private Long id;

.........

使用時請在SEQUENCE中新增相應的記錄。