본문 바로가기

java9

[JPA] 엔티티 매핑 - 기본 키 매핑 Entity와 DB의 기본 키 매핑 방식과 전략에 대해 알아보자. @Id 엔티티의 해당 필드가 기본 키임을 알려주는 어노테이션. @GeneratedValue 기본 키 생성 방법을 명시할 수 있는 어노테이션. GeneratedValue를 사용할 경우 JPA가 id가 null값인 것을 확인한 후 전략을 전략을 실행하기 때문에 객체 생성 시 개별적으로 ID를 부여하면 작동하지 않으니 주의하자. GenerationType @GeneratedValue의 전략을 명시하는 속성값. 아래와 같이 4가지 속성이 있다. AUTO IDENTITY SEQUENCE TABLE IDENTITIY 기본 키 생성을 DB에 위임한다. JPA는 일반적으로 영속성 콘텍스트 등록 후 COMMIT 시 SQL이 실행되지만, 영속성 부여 시에 .. 2024. 1. 6.
[JPA] JPA 필드와 컬럼 매핑 필드명과 컬럼 매핑 @Column name : 엔티티 필드와 매핑될 DB테이블 컬럼명을 명시해준다. insertable, updateable : 등록 변경 가능 여부. false일경우 업데이트시에도 DB에 반영되지 않는다. nullable : false : not null 제약조건 unique : 유니크 제약조건을 건다. 제약조건명 지정 불가능하기 때문에 잘 사용하지 않는 옵션. JPA가 알아서 Unique 제약 조건명을 부여하는데, 의미가 명확하지 않고 읽기도 불편해서 오류가 났을때 파악이 어렵다. class에 등록하는 @Table의 uniqueConstraints 속성으로 유니크 조건을 걸면 제약조건명 까지 설정 할 수 있기 때문에 @Table 어노테이션의 uniqueConstraints을 이용하자... 2024. 1. 5.
[JPA] JPA와 영속성 컨텍스트(Persistent Context) 영속성(Persistent)이란 ? 영속성이란 어플리케이션이 종료되어도 사라지지 않는 데이터의 특성이다. 영속성을갖이 않는 데이터는 메모리에 존재했다가 어플리케이션이 종료되는 순간 사라진다. 우리는 데이터를 지속적으로 보관하기 위해 데이터베이스에 영구 저장함으로서 영속성을 부여한다. 영속성 컨텍스트(Persistent Conext)란? 영속성 컨텍스트란 데이터를 영구 저장하는 환경(context)으로 해석 할 수 있다. 영속성 컨텍스트는 EntityManager가 생성될 때 함께 생성된다. 어플리케이션과 DB사이에 객체를 보관하는 가상의 공간이라고 생각하면 이해하기 편하다. 단, JPA의 영속성 컨텍스트는 엔티티매니저가 생성한 트랜잭션 내에서만 유효하다. 트랜잭션이 종료되면 영속성 선텍스트에 저장된 데이.. 2023. 12. 29.
[Spring Boot] HttpSession - 세션 타임아웃 세션의 타임 아웃 설정에 대해 알아보겠습니다. 세션에 저장된 데이터들은 메모리에 공간을 차지하기때문에 서버에 부담을 줍니다. 보통은 Logout 시 session.inavaidate(); 를 사용해서 세션을 무효화 시키지만, 일반적으로 우리는 logout 버튼을 찾아 누르기보다 브라우저를 끄거나 컴퓨터를 종료 합니다. 세션 유지 시 문제점 1. 서버에 부담 세션은 기본적으로 서버의 메모리에 생성됩니다. 서비스 이용자가 10만명이라면 10만개의 세션이 메모리에 생성됩니다. 따라서 세션에는 별도의 로그인 객체를 생성해 최소한의 데이터 만 올려두어야 합니다. 2. 탈취 위험 세션이나키에는 보통 사용자의 정보를 저장합니다. 물론 중요한 정보를 그냥 세션에 올리지는 경우는 거의 없지만 해커에게 탈취당할 경우는 계.. 2023. 4. 6.