카테고리 없음

@Embedded, @Embeddable, @AttributeOverride

prden 2023. 1. 14. 20:47

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