JPA

· DB
최근에 프로그래머스 데브코스에서 팀 프로젝트를 진행하던 중 외래키를 사용하지 말자는 팀원분의 의견이 있었다. 나로서는 처음 듣는 내용이었다. 외래키가 없다면 연관관계 매핑을 어떻게 해야 하는 거지..?라는 생각이 들었고 실제로 찾아본 후 많은 기업에서 외래키를 지양하는 것을 확인하였고, 이에 대해 더 자세히 알아보게 되었다. 외래키를 사용하는 이유1. 외래키의 가장 큰 장점으로는 데이터가 일련되고 정합성이 지켜지는 것이다.외래키 없어 데이터 정합성을 지키기 위해서는 애플리케이션단에서 코드를 통해 이것을 지켜야 한다. 하지만 이러한 방법은 시간이 지남에 따라 한계를 보일 수밖에 없고 결국 외래키가 없는 상태에선 시간이 지날수록 데이터 정합성이 조금씩 깨지기 시작한다. 2. 스키마를 통해 각 테이블간의 관계..
· JPA
JPA에서 중요한 것은 "객채와 관계형 데이터베이스 테이블이 어떻게 매핑되는지를 이해하는 것"이라고 할 수 있다.JPA의 목적인 "객체 지향 프로그래밍과 데이터베이스 사이의 패러다임 불일치를 해결"이라는 것과 가장 직접적으로 연관되어 있기 때문이다. JPA에서는 두 엔티티 사이의 연관 관계를 정의할 때 기본적으로 단방향으로 정의한다. 이로 인해 DB 테이블에서 외래키를 기준으로 하여 조인한다. 두 테이블 간의 연관된 데이터를 조회할 수 있는 것과 달리 JPA에서 단방향 연관 관계가 정의된 상태에서는 한쪽 엔티티 객체는 연관 관계인 엔티티 객체를 조회할 수 있으나, 반대쪽 엔티티 객체는 어떤 엔티티 객체와 연관 관계를 갖는지 알 수 없다. 이로 인해 JPA에서는 비즈니스 로직, 비즈니스 요구사항 등 필요..
· JPA
PK를 나타내기 위해 @Id 를 사용하고, 생성 전략을 정의하기 위해 @GeneratedValue 를 사용한다.이 두 개의 어노테이션을 가지고 기본키 생성 전략을 알아보고자 한다. @Id엔티티 클래스에서 해당 필드가 데이터베이스의 기본 키 역할을 한다는 것을 명시한다.이 어노테이션이 지정된 필드는 엔티티의 고유 식별자로 사용되며, 데이터베이스에서 레코드를 고유하게 식별하는 데 사용된다public class Member { @Id @Column(name = "member_id") // 컬럼명 따로 지정 private Long id;}@Column 을 활용하여 테이블의 PK 컬럼을 따로 지정할 수도 있다. 이때, 컬럼명을 따로 지정하지 않으면, 관례에 따라 매핑되는 테이블 컬럼명은 camelC..
송경훈
'JPA' 태그의 글 목록