본문 바로가기

전체 글221

JPA 임베디드 타입( Embedded Type, 복합 값 타입) : @Embedded, @Embeddable, @AttributeOverride, @AttributeOverrides 여러 개의 값을 묶어서 하나의 값 타입을 만들수 있는데 JPA에서는 이것을 임베디드 타입이라고한다. JPA 임베디드 타입의 기본적인 사용법에 대해 알아보자. 사용 방법 "Person 엔티티는 이름과 주소를 가지고있습니다." 이것을 임베디드 타입을 사용하지 않고 엔티티 코드를 작성하면 다음과 같이 작성할 수 있다. @Entity public class Person { @Id @GeneratedValue private Long id; private String name; private String city; private String street; private String zipcode; } 코드를 보면 city, street, zipcode는 주소와 관련된 값들 임을 알 수 있다. 이런 경우 임베디드 타.. 2021. 2. 20.
[자바 스터디] 13주차 과제 - I/O 본 게시글은 백기선 님의 live-study 과제를 수행하면서 작성한 글입니다. 목표 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 자바 NIO 자바 4부터 새로운 입출력(New Input/Output)이라는 뜻에서 java.nio패키지가 포함되었는데, 자바 7부터 자바 IO와 NIO 사이의 일관성 없는 클래스 설계를 바로 잡고, 비동기 채널 등의 네트워크 지원을 대폭 강화한 NIO.2 API가 추가되었다. NIO.2는.. 2021. 2. 19.
JPA 지연로딩을 사용해야하는 이유, 지연로딩(Lazy)과 즉시로딩(Eager) 공부하는 과정에서 작성한 글입니다. 잘못되거나 보충할 내용이 있다면 언제든지 알려주세요:) JPA에서는 데이터를 조회할 때 즉시 로딩(EAGER)과 지연 로딩(LAZY) 두 가지 방식이 있다. 이 두 가지 방식을 간단하게 설명하면 즉시 로딩은 데이터를 조회할 때 연관된 데이터까지 한 번에 불러오는 것이고, 지연 로딩은 필요한 시점에 연관된 데이터를 불러오는 것이라고 할 수 있다. 즉시 로딩(EAGER) @xxToxx(fetch = fetchType.EAGER) 다음과 같이 Member 엔티티와 Team 엔티티가 N:1 매핑으로 관계를 맺고 있다. @Entity public class Member { @Id @GeneratedValue private Long id; private String usernam.. 2021. 2. 12.
MySQL, JPA 페이징 사용하기 공부하는 과정에서 작성한 글입니다. 잘못되거나 보충할 내용이 있다면 언제든지 알려주세요:) 페이징을 사용하여 원하는 범위만큼의 데이터를 가져올 수 있으며, 보통 게시판 페이지 같은 것을 구현할 때 많이 사용된다. 예를 들어 post(게시글) 테이블의 title(제목)을 오름차순으로 정렬하여 '0번째부터 20개의 데이터'를 가져온다고 가정해보자. 사용방법 MySQL limit, offset 사용 select * from post order by title asc limit 0, 20; //또는 select * from post order by title asc limit 20 offset 0; JPA setFirstResult(), setMaxResults() 사용 List topics = .. 2021. 2. 11.
[자바 스터디] 12주차 과제 - 애노테이션(Annotation) 본 게시글은 백기선 님의 live-study 과제를 수행하면서 작성한 글입니다. 목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 애노테이션이란? 소스 코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것. 애노테이션은 주석처럼 프로그래밍 언어에 영향을 미치지 않으면서 다른 프로그램에게 유용한 정보를 제공할 수 있다. 예를 들어 우리는 테스트 메서드를 작성할 때 메서드 위에 @Test 애노테이션을 붙인다. @Test void testMethod() { //... }여기서 @Test 애노테이션은 '이 메서드를 테스트해야 한다.'라는 것을 JUnit과 같은 테스트.. 2021. 2. 5.