JPAで複合キーを使う

メモだけ。

package sample.jpa.domain;

import javax.persistence.Embeddable;

@Embeddable
public class EmployeePK implements Serializable {
    private long companyId;
    private long employeeId;

    public EmployeePK() {
    }

    public long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(long companyId) {
        this.companyId = companyId;
    }

    public long getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(long employeeId) {
        this.employeeId = employeeId;
    }
}
package sample.jpa.domain;

import javax.persistence.EmbeddedId;
import javax.persistence.Entity;

@Entity
public class Employee implements Serializable {
    private EmployeePK primaryKey;
    private String name;
 
    public Employee() {
    }
 
    @EmbeddedId
    public EmployeePK getPrimaryKey() {
        return primaryKey;
    }
 
    public void setPrimaryKey(EmployeePK pk) {
        primaryKey = pk;
    }
    
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }

}