일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- @FunctionalInterface
- elasticsearch
- java.util.list
- Spring Boot
- ResponseBody
- traceId
- map
- java lambda
- jpa
- micrometer tracing
- SpringMVC
- traceasynccustomautoconfiguration
- b3-propagation
- list
- CompletableFuture
- java
- kotlin
- Sleuth
- HashMap
- asyncconfigurer
- spring
- awssecretsmanagerpropertysources
- DeferredImportSelector
- spring MVC
- EnableWebMvc
- spring3 spring2 traceid
- asynccustomautoconfiguration
- Spring JPA
- aws secretmanager
- java list
- Today
- Total
목록Spring JPA (3)
du.study기록공간
JPA 를 사용하면서 save동작시, event를 등록하는 방법에 대해 기록하려합니다. 특정 entity가 저장이 될때, event호출을 통하여 특정 동작을 수행하게 할 수 있습니다. 코드로 간략하게 보면 다음과 같습니다. Event 코드 public class AccountEvent extends ApplicationEvent { private final Account account; public AccountEvent(Object source) { super(source); this.account = (Account) source; } public Account getAccount() { return account; } } Listener 코드 @Component public class Account..
이전에도 간단하게 다룬적이 있지만 따로 기록을 위하여 다시 작성하려합니다. JPA서 limit사용하고 싶은 경우에 Pageable를 사용하게 됩니다. 우선 데이터와 repository는 다음과 같습니다. (mysql) (repository) public interface AccountRepository extends JpaRepository { List findByIdGreaterThan(Long id, Pageable pageable); } 해당상태에서 조회하는 쿼리는 다음과같이 할 수 있습니다. int batch = 2; long startId = 0; while(true){ List list = accountRepository.findByIdGreaterThan(startId,PageRequest...
JPA를 사용하다보면 가끔 Bulk 업데이트를 위하여, query를 사용하여 업데이트 하는 경우가 있습니다. 그리고 이 경우, 우리는 항상 @modifying를 사용하게 됩니다. 그렇다면 어째서 @modifying를 사용해야만 하는것을까라는 궁금증이 생겼습니다. 그래서 @Query를 이용해서 업데이트 쿼리를 작성하되 @modifying를 사용, 미사용 상태로 돌려본 후, 결과를 지켜봤습니다. 우선 Repository interface에 @Modifying을 선언하지 않고 실행한 결과입니다. @Component public class JpaRunner implements ApplicationRunner { @Autowired private Repo repo; @Transactional @Override p..