일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- Gradle
- 맛집
- jsp
- 요리
- MySQL
- Web Server
- jenkins
- Oracle
- Git
- it
- php
- Design Patterns
- elasticsearch
- springboot
- AWS
- redis
- IntelliJ
- ubuntu
- linux
- Spring Boot
- Spring Batch
- ReactJS
- tool
- javascript
- JVM
- db
- laravel
- Spring
- devops
- Today
- Total
목록JPA (11)
아무거나
ItemProcessor 이전글: Spring Batch 8편 - ItemReader 작업코드: 작업코드 ItemProcessor 는 데이터를 가공하거나 필터링하는 역할을 하고 있으며 필수가 아니고 이는 Writer 부분에서도 충분히 구현이 가능 하다. 그럼에도 사용하는 것은 Reader, Writer 와는 별도의 단계로 분리되었기 때문에 비즈니스 코드가 섞이는 것을 방지 해주기 때문이다. Batch 에 비즈니스 로직을 추가할때는 가장 먼저 Processor 를 고려하는 것이 좋다. (각 계층 읽기/처리/쓰기 를 분리할 수 있는 좋은 방법) 1. ItemProcessor 란 ItemProcessor 는 Reader 에서 넘겨준 데이터 개별건을 가공/처리 해준다. 변환 Reader 에서 읽은 데이터를 원하..
ItemWriter 이전글: Spring Batch 7편 - ItemReader 작업코드: 작업코드 1. ItemWriter 란 ItemWriter 는 Spring Batch 에서 사용하는 출력 기능이며 Spring Batch 초기에는 ItemReader 와 마찬가지로 item 을 하나씩 다루었지만 Spring Batch2 와 Chunk 기반 처리의 도입으로 인하여 ItemWriter 는 item 하나를 작성하지 않고 Chunk 단위로 묶인 item list 를 다룬다. 상기 코드를 보면 ItemReader 의 read() 는 item 을 하나를 반환하지만, Writer 의 write() 는 인자로 Item List 를 받는다. 하기 이미지를 참고하자. ItemReader 를 통해 각 항목을 개별적으로 ..
ItemReader 이전글: Spring Batch 6편 - Chunk-Oriented Processing 작업코드: 작업코드 1. ItemReader 란 데이터 -> (읽기) -> ItemReader -> ItemProcessor -> ItemWriter -> (쓰기) -> 데이터 상기 프로세스와 같이 ItemReader 는 데이터를 읽어들인다. 꼭 DB의 데이터만 의미하진 않고 XML, JSON 등의 다른 형식의 데이터도 읽는다. 이외에도 Spring Batch 에서 지원하지 않는 Reader 들도 직접 만들 수 있다. Spring Batch 의 Reader 에서 읽어올 수 있는 유형은 아래와 같다. 입력 데이터에서 읽어오기 파일에서 읽어오기 DB에서 읽어오기 다른 소스에서 읽어오기 직접 커스텀한 R..
Scope & Job Parameter 이전글: Spring Batch 4편 - Spring Batch Job Flow 작업코드: 작업코드 Job Parameter, Scope 외부/내 에서 파라미터를 받아 처리할 때 해당 파라미터를 Job Parameter 라고 한다. Job Parameter 를 사용하려면 항상 Scope 를 선언해야 하는데 Scope 는 크게 @StepScope 와 @JobScope 가 있다. 사용법은 아래와 같다. @Value("#{jobParameters[파라미터명]}") 그 외에도 jobExecutionContext, stepExecutionContext 등 에도 SpEL 로 사용할 수 있다. @JobScope 에선 stepExecutionContext 는 사용할 수 없고, j..
Spring Boot 환경에서 DatasourceConfig 설정 (Multi Connection 또는 추가 설정시 유용) DataSourceConfig 추가 [DataSourceConfig.java] package com.example.bkjeon.base.config; import java.util.HashMap; import javax.persistence.EntityManager; import javax.sql.DataSource; import lombok.RequiredArgsConstructor; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdb..
Entity Graph 쿼리 메서드마다 연관 관계의 fetch모드를 유연하게 설정할 수 있는 기능을 제공 EAGER: 끝이 One으로 끝나는 연관관계는 기본값이 EAGER 모드이다. 참조하고 있는 다른 Entity의 값도 가져온다. LAZY: 끝이 Many로 끝나는 연관관계는 기본값이 LAZY 모드이다. 자기 자신만 가져온 후 참조하고 있는 다른 Entity에 접근하면 그때야 다시 쿼리 실행 예제코드 기본은 EAGER지만 LAZY로 정보를 가져올 때 @Entity public class Reply { @Id @GeneratedValue private Long id; private String reply; /** @ManyToOne 은 참조하고 있는 다른 Entity의 값도 가져온다(Reply를 조회하였지..
JPA 사용할 때 @Table(name = "example") 로 지정한 부분에 에러 표시가(=Cannot resolve table '테이블명') 되는 부분 해결 방법1: File > Setting > Editor > Inspection > JPA > Unresolved database references in annotations 체크 해제 방법2: 데이터 베이스 연결 View > Tool Windows > Database > Data Source > 사용할 Sql 종류 선택 > Download missing driver files 클릭 및 접속 정보 입력 View > Tool Windows > Persistence 마우스 우클릭 > Assign Data Sources... 클릭 관련 테이블 정보 매핑
[JPQL 사용] Query annotation : Repository의 조회 메소드에 직접 실행될 쿼리를 작성 1. Controller.java List productLogs = productLogService.getProductLog(productLog, limit); 2. Service.java List getProductLog(ProductLog productLog, Integer limit); 3. ServiceImpl.java @Override public List getProductLog(ProductLog productLog, Integer limit) { return repository.sqlFindWmpVendorIdAndDataProviderProcessType(productLog.g..
아래와 같은 쿼리문에서 바인딩 에러 : No parameter binding found for name 에러가 나고 있다. 해결방법은 이러하다. [오류]바인딩 에러 : No parameter binding found for name @Query(value=" SELECT * " + "FROM system_logs " + "WHERE log_level = :logLevel " + "AND project_type = :projectType " + "AND data_provider_type = :dataProviderType" + // 띄어쓰기 때문에 오류가 났었다 위에 다른 행들처럼 마지막에 띄어쓰기를 하자. --> "AND data_provider_type = :dataProviderType " "LI..
데이터를 저장할 때 @OneToOne, @OneToMany.. 등의 annotation이 선언되어 있을 경우에는 매핑된 id값이 0이거나 매핑되어있는 id의 자식객체가 없을 때 오류가 발생하는 경우가 있다. 이 경우 매핑되는 애들이 없을 때 값을 null 처리를 하게되면 문제없이 조회를 할 수 있다. 즉, 매핑 id 값을 null로 처리하자.