Hibernate+Oracleによるプライマリ・キーの自己成長


概要
GenerationType.IDENTITYでは、SQL ServerとMySQLでフィールドの自己増加を実現できます.この方法ではOracleに配置できません.Oracleでは自己増加フィールドはサポートされていません.sequenceを設定するには(MySQLとSQLサーバでよく使われています).JPAのINDENTITYと同等です.
ソリューション
シーケンスの作成
Oracleでシーケンスを作成することで解決します.
CREATE SEQUENCE BLACK_LIST_SEQ--   
INCREMENT BY 1   --       
START WITH 10000       --  1     
NOMAXVALUE        --        
NOCYCLE               --     ,    
CACHE 20;

またはOracle SQL Developerクライアントから直接手動で作成
シーケンスのマッピング
Hibernateでの実装方法:@SequenceGenerator(name="SEQ_Name",sequenceName="SEQ_DB_Name")パラメータ注意:SEQ_Name:SEQ_を使用するために、このSequenceの名前を指定します.DB_Name:データベース内のSequenceの名前を指定します.2つのパラメータの名前は同じでもよい.
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "black_list_seq")
    @SequenceGenerator(name = "black_list_seq", sequenceName = "BLACK_LIST_SEQ", allocationSize = 1)
    @Column(name = "ID")
    private Long id;