본문 바로가기

entity2

JPA Entity 설계시 베스트 프랙티스 1. 엔티티는 가급적 Setter을 사용하지 말자 불변성 유지 : 엔티티의 상태를 변경할 수 있는 setter 메소드가 많으면 엔티티의 상태가 예측하기 어려워지고, 불변성을 유지하기 어려워집지다. 불변성이 유지되면, 버그 발생 가능성이 줄어들고 코드를 이해하기 쉬워집니다. 엔티티의 일관성 보장 : 생성 시점에 필요한 모든 값을 생성자를 통해 전달 받으면, 객체가 일관된 상태로 시작할 수 있습니다. 이는 엔티티가 항상 유효한 상태로 유지되도록 돕습니다. 변경 추적 용이 : JPA 변경 감지 기능 (Dirty Checking)은 트랜잭션 내에서 엔티티의 상태 변화를 감지하여 변경 사항을 데이터베이스에 자동으로 반영합니다. setter 대신 명확한 의도를 나타내는 메소드 (예:changeUsername, in.. 2024. 2. 22.
JPA 연관관계의 주인 JPA(Java Persistence API) 에서 연관관계의 주인 (Owner)이란, 관례를 매핑할 때, 어느 쪽 엔티티가 외래 키를 관리할지를 결정하는 것을 말합니다. 이 개념은 양방향 연관관계에서 특히 중요합니다. 연관관계의 주인이란? 두 엔티티 간의 관계에서 데이터베이스의 외래 키를 관리하는 엔티티를 가르킵니다. JPA에서는 한쪽 엔티티만이 외래 키를 관리해야 하므로, 이느 쪽이 이 역할을 할지 지정해야 합니다. 양방향 관계의서의 중요성 양방향 관계란 두 엔티티가 서로 참조하는 관계이며, 두 엔티티가 모두 외래키를 관리할 수 없기 때문에 어느 한쪽을 주인으로 지정해야 합니다. 이때, 주인의 결정 방법은 주로 외래키가 있는 쪽을 주인으로 정합니다. @JoinColumn 어노테이션이 .. 2023. 12. 3.