본문 바로가기
728x90

분류 전체보기86

[JPA] @OneToOne @OneToOne (1:1 매핑) 속성속성기능기본값optionalfalse로 설정 시 연관된 Entity가 항상 있어야 한다.truemappedBy연관 관계의 주인 필드를 선택한다.(양방향 매핑시 사용) fetch글로벌 패치 전략 설정@OneToOne=FetchType.EAGER(즉시 로딩)cascade영속성 전이 기능 사용 orphanRemovaltrue로 설정 시, 고아 객체를 즉시 삭제false(고아 객체를 삭제하지 않는다.)targetEntity연관된 Entity의 타입 정보를 설정     참고https://velog.io/@yuseogi0218/JPA-%EC%9D%BC%EB%8C%80%EC%9D%BC-%EC%97%B0%EA%B4%80%EA%B4%80%EA%B3%84-1 2025. 1. 10.
[JPA] 연관 관계 - 1:1 일대일 연관 관계주 테이블과 대상 테이블이 관계를 맺는다.주 테이블 : 주체가 될 수 있는 대상대상 테이블 : 주체에 의해 관계가 맺어지는 대상 주 테이블이나 대상 테이블 둘 중 어느 곳이나 외래키를 가질 수 있다. 주 테이블에 외래 키- 주 테이브에 외래 키를 두고 대상 테이블을 찾는다.- 외래 키에 해당하는 대상 테이블을 객체 참조와 비슷하게 사용할 수 있기에 객체지향 개발자 선호- 주 테이블만 조회해도 대상 테이블에 데이터가 있는지 확인 가능하다. - 단점: 값이 없으면 외래 키에 null이 허용 된다. 대상 테이블에 외래 키- 대상 테이블에 외래 키가 존재한다.- 데이터베이스 개발자 선호- 테이블 관계를 1:1에서 1:N으로 변경할 때, 테이블 구조를 유지할 수 있다. - 단점 : 프록시 기능의 .. 2025. 1. 8.
[JPA] @GeneratedValue - AUTO AUTO- 방언에 따라 IDENTITY, SEQUENCE, TABLE 전략을 자동으로 지정한다.(기본값)  ex) Oracle - SEQUENCE / MySQL - IDENTITY - @GeneratedValue의 기본값은 AUTO이므로 아무런 속성없이 사용해도 된다. - 키 생성 전략이 아직 확정되지 않은 개발 초기 단계 또는 프로토타입 개발시 편리하게 사용할 수 있다.   참고https://ssdragon.tistory.com/72https://quiet-jun.tistory.com/45 2025. 1. 6.
[JPA] @GeneratedValue - TABLE TABLE- 키 생성 전용 테이블을 하나 만들어 DB 시퀀스를 흉내내는 전략- @TableGenerator 필요 - 장점 : 모든 DB에 적용 가능- 단점 : 성능create table MY_SEQUENCES ( sequence_name varchar(255) not null, next_val bigint, primary key ( sequence_name )) @Entity@TableGenerator( name = "MEMBER_SEQ_GENERATOR", table = "MY_SEQUENCES", pkColumnValue = "MEMBER_SEQ", allocationSize = 1)class Member { @Id @GeneratedValue(strategy = GenerationType.TA.. 2025. 1. 3.
[JPA] @GeneratedValue - SEQUENCE SEQUENCE- 유일한 값을 순서대로 생성하는 특별한 데이터베이스 오브젝트  ex) Oracle, PostgreSQL, DB2, H2 에서 사용 - @SequenceGenerator 필요 - 다음과 같이 테이블 마다 시퀀스 오브젝트를 따로 관리하고 싶다면 sequenceName 속성을 추가하면 된다.@Entity@SequenceGenerator( name = “MEMBER_SEQ_GENERATOR", sequenceName = “MEMBER_SEQ", //매핑할 데이터베이스 시퀀스 이름 initialValue = 1, allocationSize = 1)public class Member { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generat.. 2025. 1. 1.
[JPA] @GeneratedValue - IDENTITY IDENTITY- 기본 키 생성을 데이터베이스에 위임하는 전략  (id 값을 null로 하면 DB에서 AUTO_ INCREMENT 해준다.)  ex) MySQL, PostgreSQL, SQL Server, DB2에서 사용 - DB에 값을 저장할 때 ID 컬럼을 비워두면 DB가 식별자 값을 생성해준다.  이 전략의 경우 JPA는 기본 키값을 가져오기 위해 DB를 추가로 조회한다.@Entitypublic class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;    참고[JPA] 기본키(PK) 매핑 방법 및 생성 전략자바 ORM 표준 JPA 프로그래밍 - 기본편 2024. 12. 30.
728x90