AdSense

網頁

2020/9/26

Spring Data JPA @IdClass複合主鍵範例 composite key example

Spring Data JPA使用@IdClass設定複合主鍵(composite primary key)範例如下。

對應資料表CONFIG的entity類Config的主鍵是由兩個欄位systemIdmoduleId組成的複合主鍵。透過@IdClass指定ConfigId設定複合主鍵。

注意本範例使用Lombok產生constructor、getters、setters、equals()hashCode(),且entity類Config及複合主鍵類別ConfigId都實作序列化Serializable

Config

package com.abc.demo.entity

import javax.persistence.*;
import java.io.Serializable;

@IdClass(Config.ConfigId.class)
@Entity
@Table(name="CONFIG")
public class Config implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name="SYSTEM_ID")
    private long systemId;

    @Id
    @Column(name="MODULE_ID")
    private long moduleId;

    @Column(name="KEY")
    private String key;

    @Column(name="VALUE")
    private String value;
    
    // getters and setters...

    
    public static class ConfigId implements Serializable {
        private static final long serialVersionUID = 1L;

        private long systemId;
        private long moduleId;
        
        // getters and setters...

    }

}


沒有留言:

AdSense