고급매핑 - 상속관계 매핑 상속관계매핑이란, 객체의 상속 구조와 관계형DB의 슈퍼타입과 서브타입의 관계를 매핑하는것이다. 상속관계의 매핑에서 슈퍼타입과 서브타입의 논리모델을 실제 물리 모델로 구현하는방법은 아래와 같다. 가. 각각 테이블로 변환하는 조인전략 나. 통합테이블로 변환하는 단일 테이블 전략 다. 서브타입 테이블로 변환하는 구현 클래스마다 테이블 전략 위 전략을 사용하면서 함께 쓰이는 어노테이션은 아래와 같다. // 부모클래스에 작성한다. @Inheritance(strategy=InheritanceType.XXX) // JOINED // SINGLE_TABLE // TABLE_PER_CLASS // 부모클래스에 구분자 컬럼을 지정한다. @DiscriminatorColumn(name="DTYPE"..
다양한 연관관계 매핑 연관관계 매핑 시 고려사항 3가지 다대일 [N:1] 일대다 [1:N] 일대일 [1:1] 다대다 [N:M] 실전 예제 - 3. 다양한 연관관계 매핑 첫번째, 연관관계 매핑 시 고려사항 3가지 다중성 다대일: @ManyToOne 실무에서 가장 많이 사용 일대다: @OneToMany 일대일: @OneToOne 다대다: @ManyToMany 실무에서 사용하면 안됨 다대일 AND 일대다로 풀어서 사용한다. 단방향, 양방향 테이블 외래키 하나로 양쪽 조인 가능 사실 방향이라는 개념은 없다 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 연관관계의 주인 연관관계의 주인은 외래키를 관리하는 참조 주인의 반대편은 단순 조회만 가능하다. 다대일 [N:1..
1. 스트림의 연산(중간연산과 최종연산)에 어떤것들이 있을까? 중간연산 - 연산결과가 스트림인 연산. 0~N번 반복적으로 적용 가능하다. 최종연산 - 연산결과가 스트림이 아닌연산으로 단 한번만 적용 가능하다. 스트림의 요소를 소모한다. 예제로 설명해보자면 아래와 같다. stream.distinct().limit(5).sorted().forEach(System.out::print); // ----------중간연산----------- -----최종연산 스트림 소모------ distinct() 중복제거 limit(5) 5개 자르기 sorted() 정렬 그럼 스트림의 중간연산에 대해 알아보자! 중간연산 설명 Stream distinct() 중복을 제거 Stream filter(Predicate predica..
[자바의 정석 - 기초편] ch 14~17~22 스트림 만들기 1. 컬렉션을 스트림으로 변환하기 Collection인터페이스의 stream()을 통하여 변환한다. 아래와 같이 Collection.java 안에는 stream메서드가 존재한다. Stream stream() // Collection인터페이스의 메서드 예제 Collection인 인터페이스의 stream을 사용하여 stream변환 List list = Arrays.asList(1,2,3,4,5); // list를 데이터소스로 하는 새로운 스트림을 생성한다. Stream intStream = list.stream(); intStream.forEach(System.out::print); //stream has already been opera..
자바의 정석 - 기초편 ch14-15,16 스트림, 스트림의 특징 14-15 스트림(Stream) 스트림이란? 다양한 데이터 소스를 Collection Framework인 List, Set, Map과 배열을 표준화된 방법으로 다루기 위한 것이다. 스트림은 아래와 같이 연산을 거친다. 중간연산 - 연산결과가 스트림인 연산. 반복적으로 적용 가능하다. 최종연산 - 연산결과가 스트림이 아닌연산으로 단 한번만 적용 가능하다. 스트림의 요소를 소모한다. 예제1 : Steam으로 변환하기 예제 // 1. 컬렉션 List list = Arrays.asList(1,2,3,4,5); Stream intStream = list.stream(); // 2. 배열 Stream strStream = Stream.of(new S..
양방향 연관관계와 연관관계의 주인2 - 주의점, 정리 tx.begin(); //팀 저장 Team team = new Team(); team.setName("TeamA"); em.persist(team); //회원 저장 Member member = new Member(); member.setUsername("member1"); member.setTeam(team); em.persist(member); // em.flush(); // em.clear(); // team.getMembers().add(member); Team findTeam = em.find(Team.class, team.getId()); List members = findTeam.getMembers(); 위와 같이 실행했을 경우, 마지막 라..
w영속성 관리 - 내부 동작 방식 정리 JPA에서 가장 중요한 2가지는 무엇일까? 첫번째, 객체와 관계형 데이터베이스 매핑하기(Object Relational Mapping)이다. - DB를 어떻게 설계할것인지 이에따라 JPA는 어떻게 사용할 것인지 중요하다. 두번째, 영속성 컨텍스트이다. JPA는 어떻게 작동할 것인지에 대한 이해가 중요하다. 즉, 영속성 컨텍스트를 이해해야하는데 이는 엔티티를 영구 저장하는 환경이라는 뜻으로, 아래 명령어 진행 시 엔티티를 영속성 컨텍스트에 저장하겠다는의미 입니다. EntityManager.persist(entity); em.find(EntityClass.class, entity); 영속성 컨텍스트는 눈에 보이지 않는 논리적인 개념으로써, EntityManager를 생..
- Total
- Today
- Yesterday
- map
- vscode
- stream
- nginx
- install
- container
- lambda
- ApplicationContext
- 중간연산
- 영속성 컨텍스트
- BeanFactory
- 차이
- docker
- Vuex
- MAC
- mvn
- JPA
- 최종연산
- springboot
- 스트림
- Intellij
- 람다
- NPM
- java
- elasticsearch
- ngnix
- Vue
- 자바8
- webpack
- AnnotationConfigApplicationContext
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |