일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring
- 코틸린인액션
- 7장 고급매핑
- 코틀린
- 20055
- 스프링 컨테이너와 스프링 빈
- 싱글톤 컨테이너
- 13460 구슬탈출 2
- Kotlin in action 6장
- 자바 ORM 표준 JPA 프로그래밍 7장
- Kotlin in action 3장
- Python
- 20055 컨베이어 벨트 위의 로봇
- 컨베이어 벨트 위의 로봇 Python
- Kotlin In Action
- 스프링 핵심 원리
- 고급매핑
- 기능개발 python
- Kotlin in action 10장
- kotlin in action 정리
- Kotlin in action 5장
- Kotlin
- 코틀린인액션
- 백준 20055 컨베이어 벨트 위의 로봇
- 스프링 핵심 원리 이해
- 백준 13460 Python
- KotlinInAction
- 백준
- 스프링 핵심 원리 - 기본편
- 객체 지향 설계와 스프링
- Today
- Total
목록분류 전체보기 (157)
기록하는 습관
1. 예외 처리 jpa 표준 예외는 javax.persistence.PersistenceException의 자식 클래스이다. jpa 예외는 모두 unchecked 예외이다. ** unchecked 예외란? 언체크 예외는 RuntimeException의 하위 클래스들을 의미. 체크 예외와는 달리 에러 처리를 강제하지 않는다. 말 그대로 실행 중에(runtime) 발생할 수 있는 예외를 의미한다. 배열의 범위를 벗어난(ArrayIndexOutOfBoundsException) 값이 null이 참조변수를 참조(NullPointerException) JPA 표준 예외 2가지 1. 트랜잭션 롤백을 표시하는 예외 트랜잭션 강제로 커밋해도 커밋되지 않고, javax.persistence.RollbackException..
스프링 데이터 JPA와 QueryDSL 통합 1. QueryDslPredicateExecutor 사용 첫 번째 방법은 다음처럼 리포지토리에서 QueryDslPredicateExecutor를 상속받으면 된다. 이제 상품 리포지토리에서 QueryDSL을 사용할 수 있다. 아래 예제는 QueryDSL이 생성한 쿼리 타입으로 장난감이라는 이름을 포함하고 있으면서 가격이 10000~20000원인 상품을 검색한다. public interface ItemRepository extends JpaRepository, QueryDslPredicateExecutor {} QItem item = QItem.item; Iterable result = itemRepository.findAll( item.name.contains(..
쿼리 메소드 기능 1. 메소드 이름으로 쿼리 생성 public interface MemberRepository extends Repository { List findByEmailAndName(String email, String name); } // 실행되는 JPQL select m from Member m where m.email = ?1 and m.name = ?2 ** 엔티티의 필드명이 변경되면 인터페이스에 정의한 메소드 이름도 꼭 함께 변경해야 한다. 그렇지 않으면 애플리케이션 시작하는 시점에 오류가 발생한다. 2. JPA NamedQuery // 어노테이션 방식 @Entity @NamedQuery( name="Member.findByUsername", query="select m from Mem..
1. 기본 문법과 쿼리 API Java Persistence Query Language(JPQL)은 엔터티 객체를 대상으로 하는 쿼리 언어로, SQL과 유사하지만 테이블이 아닌 엔터티에 대해 작동한다. 1.1 기본 문법 JPQL의 기본 문법은 다음과 같다: SELECT FROM WHERE 예) SELECT e FROM Employee e WHERE e.department = 'IT' 이 쿼리는 'IT' 부서에 속한 모든 직원을 검색한다. 1.2 쿼리 API JPQL은 EntityManager를 통해 실행된다. EntityManager는 엔터티를 관리하고 영속성 컨텍스트를 제공하는데, 이를 이용해 JPQL을 실행할 수 있다. EntityManager em = // EntityManager를 얻는 코드 Ty..
JPA 의 데이터 타입을 가장 크게 분류하면 엔티티 타입과 값 타입으로 나눌 수 있다. 엔티티 타입 : @Entity로 정의하는 객체 식별자를 통해 지속적으로 추적할 수 있다. 엔티티의 속성 값을 변경하더라도 같은 엔티티이다. 값 타입 : int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체를 말한다. 식별자가 없고 숫자나 문자같은 속성만 있으므로 추적할 수 없다. 숫자 값을 100에서 200으로 변경하면 완전히 다른 값으로 대체된다. 값 타입은 다음의 3가지로 나눌 수 있다. 기본값 타입(Basic value type) 자바 기본 타입(예: int, double) 래퍼 클래스(예: Integer) String 임베디드 타입(복합 값 타입) JPA 에서 사용자가 직접..
더보기 회사에서 JPA 스터디를 중간에 참여하게 되어 7장부터 글을 쓰게 되었다. 앞으로 책을 읽고 알게된 내용이나, 궁금했던 점 위주로 정리할 예정이다. 복합 키와 식별관계 매핑 식별관계 vs 비식별관계 DB 테이블 사이의 관계는 외래 키가 기본 키에 포함되는지 여부에 따라 식별, 비식별로 구분된다. 식별관계 식별 관계는 부모 테이블의 기본 키를 내려 받아 자식 테이블의 기본키 + 외래키로 사용하는 관계 비식별관계 비식별 관계는 부모 테이블의 기본 키를 받아서 자식 테이블의 외래 키로만 사용하는 관계다. 비식별 관계는 외래키에 NULL을 허용하는지에 따라 필수적, 선택적으로 갈린다. 필수적 비식별 관계 외래키에 NULL 허용하지 않음 연관관계를 필수적으로 맺어야함 선택적 비식별 관계 외래키에 NULL ..
** 이 글은 Kotlin In Action을 읽고 정리한 글입니다. ** 10.1 애노테이션 선언과 적용 10.1.1 애노테이션 적용 애노테이션 적용을 위해서는 적용하는 대상 앞에 애노테이션을 붙이면 된다. 애노테이션은 '@'과 애노테이션 이름으로 이루어진다. 예를 들어 JUnit 프레임워크를 사용한다면 테스트 메서드 앞에 '@Test' 애노테이션을 붙이면 된다. class MyTest{ @Test fun testTrue(){ Assert.assertTrue(true) } } 애노테이션의 인자로는 원시 타입의 값, 문자열, enum, 클래스 참조, 다른 애노테이션 클래스, 배열이 들어갈 수 있다. 애노테이션의 인자를 지정하는 문법은 자바와 약간 다르다. 클래스를 애노테이션 인자로 지정할 때는 @MyAn..
** 이 글은 Kotlin In Action을 읽고 정리한 글입니다. ** 1. 널 가능성 fun strLenSafe(s: String?) = s.length() 타입 이름 뒤에 물음표(?)를 붙이면 그 타입의 변수나 프로퍼티에 null 참조를 저장할 수 있다. val x:String? = null val y:String = x 널이 될 수 있는 값을 널이 될 수 없는 타입의 변수에 대입할 수 없다. 안전한 호출 연산자 ?. null 검사와 메서드 호출을 한 번의 연산으로 수행한다. val country = this.company?.address?.country 엘비스 ?:연산자 이항 연산자로 좌항을 계산한 값이 널인지 검사한다. 좌항 값이 널이 아니면 좌항 값을 결과로 하고, 좌항 값이 널이면 우항 값..