1. 주소 등 중복되는 객체를 @Embedded, @Embeddable, @AttributeOverride로 해결
1) @Embedded
@Entity
@Table(name = "`employee`")
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Employee {
@Id
@Column(name = "employee_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long employeeId;
@Column(name = "name")
private String name;
@Column(name = "phone_number")
private String phoneNumber;
@Column(name = "registration_num")
private String registrationNum;
@Column(name = "company_name")
private String companyName;
@Column(name = "position")
private String position;
@Column(name = "grade")
private String grade;
@Column(name = "rank")
private String rank;
@Column(name = "description")
private String description;
@Column(name = "abnormality")
private String abnormality;
@Column(name = "gender")
private String gender;
@Column(name = "employee_type")
private String employeeType;
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "address", column = @Column(name = "address")),
@AttributeOverride(name = "addressDetails", column = @Column(name = "address_details")),
@AttributeOverride(name = "zipCode", column = @Column(name = "zip_code", nullable = false))
})
private Address address;
}
2) @Embeddable
@Embeddable
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Table(name = "`address`")
public class Address {
@NotEmpty
@Column(name = "address")
private String address;
@NotEmpty @Column(name = "address_details")
private String addressDetails;
@NotEmpty @Column(name = "zip_code")
private String zipCode;
}
https://galid1.tistory.com/592
JPA - Entity의 가독성을 높이자(@Embedded, @Embeddable, @AttributeOverride 사용법)
@Embedded, @AttributeOverride JPA에서는 Entity안의 값을 조금 더 의미있는 값으로 표현하기 위해 응집된 하나의 객체로 데이터를 표현합니다. 이번 포스팅에서는 이 처럼 JPA의 Entity를 조금 더 확실한 의
galid1.tistory.com