Spring Boot Scheduler Cron(크론) 스프링부트에서 특정 시간마다 반복되게 하고 싶다면 Cron(크론)을 사용합니다. 크론은 다음과 같이 * * * * * * 총 6자리로 이루어져 있습니다. 각 자리는 초, 분, 시, 일, 월, 요일 입니다. "0 0 * * * *" = the top of every hour of every day. "* * * * * *" = 매초 실행 합니다. "*/10 * * * * *" = 매 10초마다 실행한다. 0 */1 * * * = 매시간 실행 합니다. "0 0 8-10 * * *" = 매일 8, 9, 10시에 실행한다 "0 0 6,19 * * *" = 매일 오전 6시, 오후 7시에 실행한다. "0 0/30 8-10 * * *" = 8:00, 8:30, ..
Spring Data Jpa에서 LocalDateTime이용해서 자동으로 createdAt만들기 개요 쇼핑몰에서 사용자가 물건을 구매 한다고 했을 때 언제 구매를 했는지 그리고 결제를 했다면 언제 결제를 했는지 등 날짜, 시간에 관한 정보가 꼭 필요한 table들이 있습니다. 여기에서 트렌젝션이 발생한 날짜와 시간을 기록하게 하고 싶을 때 아래와 같이 Object를 만들어 주면 날짜를 현재 시간으로 만들어서 기록 할 수 있습니다. import lombok.Data; import javax.persistence.*; import java.time.LocalDateTime; @Data @Entity public class Salary { @Id @GeneratedValue(strategy = Generati..
spring boot 실시간 hot deploy하기 https://stackoverflow.com/questions/23155244/spring-boot-hotswap-with-intellij-ide https://dzone.com/articles/spring-boot-application-live-reload-hot-swap-with 참고는 여기 스프링 프로젝트를 빌드하고 나서 hot deploy설정을 해주는데 기존에 하던 프로젝트면 설정을 이미 해놓아서 괜찮은데 실시간 반영 되게 핫 디플로이 설정을 하려면 자주 하는 설정이 아니라서 매번 찾아보아야 했다. 그래서 올려놓는다. 방법은 1.spring-boot-devtools를 라이브러리에 추가한다. 2.intelli j 에서 설정한다. 3.ctrl + ..
@SpringBootTest와 @DataJpaTest 차이점Spring Application(스프링 어플리케이션)은 ApplicationContext이다. 스프링의 기본 컨셉이 ApplicationContext에 Bean(Object)들을 미리 로드 해놓고 사용하는 컨셉이기 때문에 이걸 로딩하는것도 시간이 꽤 걸린다. 특히 테스트를 계속 돌리면서 개발할때는 한번 올려버리는게 아니고 계속 올려야 하니까 한줄 수정 하고 결과를 보기 까지 시간이 올래 걸리면 지친다.그래서 몇가지 구분을 해놓은게 있다.결론부터 이야기 하면 @DataJpaTest는 @Component를 스캔하지않는다.그래서 @Component붙혀놓은 Class를 함께 사용하려면 @SpringBootTest를 사용하면 된다. @DataJpaTes..
Spring Data Jpa @ManyToOne 양방향 Mapping하기 Spring Data Jpa는 굉장히 괜찮은 프레임웍이다. 기능이 많고 유연한데 그만큼 제약이 많고 잘 알고 써야 한다. 가장 어려운것은 Mapping이다. 소스코드는 여기 https://github.com/Kyeongrok/baseball_mapping 목차는 다음과 같다.1.Project빌드 2.필요한 라이브러리 선택 - JPA, MySql, JDBC, H2 3.application-test.yml 만들기 5.Team 엔티티(Entity) 만들기 6.Lombok 설정 7.TeamRepository 만들기 8.TeamRepository test code 만들기 좌측 Spring Initializer를 선택한다. Next누른다. 프..
Spring Data Jpa @Discriminator 다대일 Mapping 중요한 내용@ManyToOne은 parent를 save 할 때 먼저 Many쪽에 있는 row들을 insert한 다음에 parent를 save할 수 있다.Parent에서 @OneToMany(mappedBy = "parentName") 이런식으로 카멜케이스를 써야함.@OneToMany(mappedBy = "parent_name") 이렇게 쓰면 매핑이 안됨 났던 에러들1.Could not determine type for- Parent에 @OneToMany(mappedBy="parent_table_name")를 빼면 난다. 2.mappedBy reference an unknown target entity property- 알수 없는 ..
Spring Data Jpa 상속관계(Inheritance) 매핑 하기 Spring Data Jpa를 이용해 Restful Api를 구축하는데 Domain설계부터 다시 하고있습니다. 그런데 Dynamic으로 해야 할 일이 있어서 이 기능을 알아보게 되었습니다. 시나리오 교보문고에 가면 물건들(Item)을 파는데 앨범(Album)도 판다. 사용한것 Spring Data Jpa, Lombok. MySql Lombok을 사용했기 때문에 @Data 어노테이션이 있습니다. 사용한 전략은 조인 전략 매핑을 사용했습니다. 구조 item 이라는 table이 parent(부모), album 이라는 table이 child(자식)구조입니다. Table item과 album 2개만 해보았습니다. item CREATE TABL..
JsonConfig.java@Configuration @Slf4j public class JsonConfig { @Bean public ObjectMapper namedObjectMapper() { return Jackson2ObjectMapperBuilder.json() .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) .modules(new JavaTimeModule()) .build(); } } restful api로 MySql Datetime을 출력 해줄 때 timestamp로 나오는걸 '날짜T시간' 형식으로 출력하게 해준다.
그래들(gradle)로 스프링 부트 JPA 빌드하고 DB연동 하는 예제 화질을 조정해서 보시면 선명하게 보입니다. 소스코드는 아래 링크에 있습니다.https://github.com/Kyeongrok/spring_boot_data_jpa_build 내용은 아래와 같습니다. Intelli J + Gradle로Spring Boot 빌드하기Spring Data Jpa DB연동하기 1.spring boot project빌드하기2.db table생성3.db연동4.test code 작성
1.between 사용법 repository List findByLatestUpdateBetween(Date start, Date end); main.java Date before = new Date(System.currentTimeMillis() - 30000L); Date now = new Date(); System.out.println(before); System.out.println(now); List live = liveBaseballScoreRepository.findByLatestUpdateBetween(before, now); spring data jpa 메소드 쿼리로 date between만들기 2.between과 and사용법 어제 00:00:00부터 오늘 23:59:59초까지 24:00..
- Total
- Today
- Yesterday
- 도커각티슈박스
- 개발자
- 싱가폴
- 도커각티슈케이스
- 이직
- Sh
- shellscript
- docker container case
- docker container whale
- 도커티슈박스
- 2017 티스토리 결산
- docker container tissue box
- docker container
- 도커컨테이너
- 도커티슈케이스
- docker container tissue
- Linux
- vim
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |