본문 바로가기

Spring/JPA25

환경세팅 Dependency 목록 maven mysql mysql-connector-java 8.0.27 org.hibernate hibernate-entitymanager 5.6.11.Final org.projectlombok lombok 1.18.24 provided persistence.xml 아래 경로에 persistence.xml 파일을 작성한다 src/main/resources/META-INF/persistence.xml 추가 1) persistence.xml 에서 h2 DB Driver를 찾지못하는경우 위 경우에는 pom.xml에 아래와 같이 되어있는지 확인한다 는 dependency를 어느 시점에 적용할 것인지 설정하는 부분이다 아래에서는 test로 설정되어 테스트 컴파일 및 실행 단계에서만 적용되.. 2023. 2. 24.
Entity-Table 매핑 - 필드 매핑(@Transient) @Transient는 DB의 컬럼과 매핑하지 않는 속성을 명시할 때 사용한다 DB에 저장하는 용도가 아닌 변수에 임시로 값을 저장하거나, 데이터처리를 위해 값을 저장할 때 사용한다. @Entity public class Member{ @Id String userId; String username; Integer age; @Transient Integer temp; } 2023. 2. 23.
Entity-Table 매핑 - 필드 매핑(@Lob) @Lob은 대용량 데이터를 저장할 때 사용한다 오라클의 경우 BLOB, CLOB MySQL의 경우 BLOB, TEXT와 매핑된다 @Lob은 Java의 데이터 타입에 따라 매핑되는 타입이 달라진다 오라클을 예시로 들자면 아래와 같이 매핑될 수 있다 BLOB: byte[], java.sql.BLOB CLOB: String, char[], java.sql.CLOB 아래는 사용 예이다 @Entity public class Report{ @Id private Long Id; private String title; //CLOB @Lob private String reportContent //BLOB @Lob private byte[] attachedFile; } 2023. 2. 23.
Entity-Table 매핑 - 필드 매핑(@Temporal) @Temporal 타입은 Java의 날짜타입을 매핑할 때 사용한다 @Temporal 애너테이션의 옵션은 아래와 같이 존재한다 TemporalType.DATE - 날짜만 저장(Ex. 2023-01-01) TemporalType.TIME - 시간만 저장(Ex. 10:23:12) TemporalType.TIMESTAMP - 날짜와 시간을 저장(Ex. 2023-01-01 10:23:12) 사용 예는 아래와 같다 @Entity public class Member{ @Id private userId; @Temporal(value=TemporalType.DATE) private Date birthDay @Temporal(value=TemporalType.TIMESTAMP) private Date createdDate.. 2023. 2. 23.