일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JQuery
- 엔티티직접사용
- namedQuery
- javascriptcalendar
- 자바서블릿
- paging
- Hibernate
- joinfetch
- 페치조인
- springflow
- fetchjoin
- 벌크연산
- values()
- 대량쿼리
- jQuery값전송
- LIST
- JPQL
- 제너릭
- fullcalendar
- 스프링데이터흐름
- calendar
- jQueryUI
- jQuery값전달
- jscalendar
- javaservlet
- 페이징
- Generic
- 프로젝트생성
- 제네릭
- JPA
- Today
- Total
목록공부 (253)
가자공부하러!
1. Null 처리 방법 1.1. Optional 활용(Java 8) - 단일값을 리턴하는 경우(리턴 엔티티가 1개) - Optional 인터페이스가 제공하는 메소드를 통해 null 검사를 수행할 수 있다. > isPresent() : 값이 있는지 확인 > orElse(T other) : 값이 없으면 other로 대체 > orElseThrow(IllegalArgumentException::new) : 값이 있으면 값 리턴, 없으면 예외 1.2. 엔티티 활용 1.3. 리턴타입이 컬렉션이면 null은 나오지 않음(size가 0) 1.4. Spring Framework 5.0 부터 지원하는 Null 애노테이션 활용 - @NonNull, @Nullable package com.exam.demo.repo; imp..
1. 개발환경 설정 1.1. 개발환경 - Spring Boot 2.2.1 - Java 8 - JPA v2.*, Hibernate v5.* - postgres DB 1.2. 설정파일 - application.yml : datasource, ddl-auto option - JpaRunner.class : JPA의 핵심인 EntityManager를 가지고 엔티티 영속화 작업을 수행해주는 클래스 2. Spring Data 2.1. 역할 : SQL, NoSQL 저장소 지원 프로젝트의 묶음 2.2. 구성 - Spring Data Common : 여러 저장소 지원 프로젝트의 공통 기능 제공 - Spring Data REST : 저장소의 데이터를 하이퍼미디어 기반 HTTP 리소스, REST API리소스로 제공하는 프로..
참고 : https://judo0179.tistory.com/48 참고 : https://hub.docker.com/_/postgres 1. 최신 postgres Docker 이미지 다운로드 - $ docker pull postgres 2. 포트매핑 - $ docker run -p 5432:5432 -e POSTGRES_PASSWORD=hjmin -e POSTGRES_USER=hjmin -e POSTGRES_DB=springdata --name postgres_boot -d postgres - '-e' : 환경변수라는 의미 - '--name' : 컨테이너 이름 - '-d' : 데몬모드로 백그라운드로 띄우겠다는 의미 - postgres 설정 확인 > $ docker ps 3. 도커 컨테이너로 접근 - 명령..
1. 설치 1.1. 참고 : https://hub.docker.com/?overlay=onboarding 1.2. 수행이력 - [Download] Docker.dmg 다운로드 및 설치 - [Clone] terminal에서 $ git clone https://github.com/docker/doodle.git - terminal에서 $ cd doodle/cheers2019 - [Build] terminal에서 $ docker build -t alsgudwns007/cheers2019 . - [Run] terminal에서 $ docker run -it --rm alsgudwns007/cheers2019 2. 활용 2.1. 실행중인 도커 확인 - $ docker ps
1. 엔티티 직접 사용 1.1. 기본 키 값 - JPQL에서 엔티티를 직접 사용하면 SQL에서 해당 엔티티의 기본 키 값을 사용한다. > 예) JPQL : select count(m) from Member m - 수행되는 쿼리 : select count(m.id) as cnt from Member m - 다음 JPQL도 수행되는 쿼리는 위와 같음 : select count(m.id) from Member m 1.2. 외래키 값 - 연관관계 매핑된 다른 엔티티를 쿼리의 파라미터로 사용할 수 있다. //@ManyToOne @JoinColumn(name = "TEAM_ID) private Team team; em.createQuery("select m from Member m where m.team = :te..
예제 : https://github.com/HyeongJunMin/SpringBootOnmacOS/tree/master/ex2-jpql-jpa 1. 경로표현식 1.1. .(점)을 찍어 객체 그래프를 탐색하는 것 - 상태 필드 : 단순히 값을 저장하기 위한 필드 > 경로 탐색의 끝, 더 이상 탐색이 불가능 - 단일 값 연관 필드 : 엔티티와의 연관관계를 위한 필드 > 묵시적 내부 조인이 발생하고 추가적인 탐색 가능 > 묵시적 내부 조인은 성능튜닝에 많은 영향을 주기 때문에 사용하지 않는것이 좋다 > 예) select m.team.name From Member m - 이 때 m.team까지 단일 값 연관필드이고 m.team.name은 상태필드이다. - 실제 쿼리 : select t.id, t.name fro..
1. JPQL(Java Persistence Query Language) 1.1. 등장배경 - JPA를 사용하면 엔티티 객체를 중심으로 개발을 하게됨 - 검색할 때 마다 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능 - 필요한 데이터만 불러오려면 검색 조건이 포함된 SQL이 필요 1.2. 특징 - SQL을 추상화한 쿼리 언어이며, SQL이 지원하는 키워드는 모두 지원 - JPQL은 엔티티 객체를 대상으로 쿼리 수행(SQL은 DB 테이블 대상) - JPQL은 SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. - JPQL은 결국 SQL로 변환된다. 1.3. 사용방법과 예제 - 기초 사용법 > 엔티티와 속성은 대소문자 구분, JPQL 키워드(select, FROM, ...)는 대소문자..
참고 : https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%8D%B8-%EB%B7%B0-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC?source=post_page-----1d74fac6e256---------------------- 참고 : https://namu.wiki/w/%EB%94%94%EC%9E%90%EC%9D%B8%20%ED%8C%A8%ED%84%B4 참고 : https://happysuzy.tistory.com/36 1. 디자인 패턴? 2. 종류 2.1. 생성 패턴 - 싱글톤 패턴 - 팩토리 패턴 - 빌더 패턴 2.2. 구조 패턴 - 파사드 패턴 - 데코레이터 패턴 - 프록시 패턴 2.3. 행위(동작) 패턴 - 옵저버 패턴 - 반복자 패턴
1. JPA의 데이터 타입 분류 1.1. 엔티티 타입 - @Entity로 정의하는 객체 - 데이터가 변해도 식별자로 지속해서 추적 가능 ex) 회원 나이를 변경해도 식별자로 추적 가능 1.2. 값 타입 - int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 자료형이나 객체 - 식별자가 없고 값만 있으므로 변경 시 추적 불가 ex) 회원 나이를 20에서 21로 변경하면 완전히 다른 값으로 대체 - 분류 > 기본값 타입 : primprimative type, Wrapper Class, String > 임베디드 타입 : embedded type, 복합 값 타입 > 컬렉션 값 타입 2. 타입 별 특징 2.1. 기본 값 타입 - 생명주기를 엔티티에 의존 - 값타입이 공유되어서는 안된다. ..
1. 프록시 > em.getReference() : DB조회를 미루는 가짜(프록시) 엔티티 객체 조회 - DB에 쿼리가 안나가는데 객체가 조회됨 -> 객체값이 실제 사용되는 시점에 DB에 쿼리를 날림 - class domain.Member$HibernateProxy$ojP0rbKz > 사용 목적 - 엔티티와 연결된 모든 정보를 가져올 필요 없이 일부만 활용하고 싶을 때 - ex) Member를 조회할 때 Team은 조회하고 싶지 않다. - 지연로딩 > 특징 - 프록시는 실제 클래스를 상속 받아서 만들어지므로 실제 클래스와 겉 모양이 같다. - 이론상 사용하는 입장에서 진짜 객체인지 프록시 객체인지 구분할 필요가 없다. - 프록시 객체는 최초 1회만 초기화되며, 실제 객체의 참조를(target) 보관 - ..
1. 단축키 맥 키조합 = 기능 = 윈도우 키조합 cmd + shift + [, ] = 탭이동 = Ctrl + Page Down, Page Up 2. 설정 2.1. 잠자기 모드 방지 > 외부디스플레이 연결했을 때 맥북 덮어도 외부디스플레이에서 계속 작업 가능하게끔 설정 > 잠자기 방지 활성(뚜껑 닫기 가능/전원 연결에 한함) sudo pmset -c disablesleep 1 > 참고 : https://ssumer.com/%ED%84%B0%EB%AF%B8%EB%84%90-%EB%AA%85%EB%A0%B9-%EB%9A%9C%EA%BB%91-%EB%8B%AB%EA%B3%A0-%EB%A7%A5%EB%B6%81-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/
참고 : popit.kr/인텔리j-활용-꿀팁-42가지-정리/ 이동 탭 이동 : Cmd + Shift + [, ] 포커스 이동 : alt + 0 ~ 9 에디터로 포커스 이동 : (에디터에 포커스가 없는 상태에서) Esc 검색 전체검색 : Shift 2번 연타 경로 내 검색 : Cmd + Shift + F 파일 내 검색 : Cmd + F 1. 이동 1.1. 탭 이동 : Cmd + Shift + [, ] 1.2. 2. 검색 2.1. 전체 1 내용 macOS 윈도우, 리눅스 1 라인 복사하기 Cmd + D Ctrl + D 2 라인 삭제하기 Cmd + 백스페이스 Ctrl + Y 3 라인 합치기 Ctrl + Shift + J Ctrl + Shift + J 4 라인 단위로 옮기기 - 구문 이동 Shift + Cmd ..