Spring Data JPA使用@IdClass
設定複合主鍵(composite primary key)範例如下。
對應資料表CONFIG
的entity類Config
的主鍵是由兩個欄位systemId
及moduleId
組成的複合主鍵。透過@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...
}
}
沒有留言:
張貼留言