自己参照のための素早いJPA + Oracleのシーケンス例。

1. Oracleデータベース

次のSQLスクリプトを発行して、表とシーケンスを作成します。

CREATE TABLE CUSTOMER(
    ID NUMBER(10) NOT NULL,
    NAME VARCHAR2(100) NOT NULL,
    EMAIL VARCHAR2(100) NOT NULL,
    CREATED__DATE DATE NOT NULL,
    CONSTRAINT CUSTOMER__PK PRIMARY KEY (ID)
);

CREATE SEQUENCE customer__seq
  MINVALUE 1
  MAXVALUE 9999999999
  START WITH 4
  INCREMENT BY 1;

2. JPA

Javaでは、JPAアノテーションを次のように追加します。

Customer.java

package com.mkyong.model;

import javax.persistence.** ;
import java.util.Date;

@Entity
public class Customer {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CUST__SEQ")
    @SequenceGenerator(sequenceName = "customer__seq", allocationSize = 1, name = "CUST__SEQ")
    Long id;

    String name;
    String email;

    @Column(name = "CREATED__DATE")
    Date date;

   //...
}

ソースコードをダウンロードする

ダウンロード:

spring-data-jpa-insert-oracle-example.zip

(6 KB)

参考文献

シーケンス(オートナンバー)]。リンク://spring-boot/spring-boot-spring-data-jpa-oracle-example/[Spring

ブート・スプリング・データJPA Oracleの例]