일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- @JsonView
- AT&T
- flex하는게 아니었는데..
- paper2d
- 금융공학
- spring
- HRD
- mastering unreal engine
- weblogic
- ue5
- 유학
- 인물
- 주식
- spring message converters
- spring security
- UE4
- 어학연수
- rollbackOnly
- jdk17
- 학생비자
- 펜실베이니아
- kospi
- 월화수목금토익
- 최근증시
- 삼성 플렉스북
- 필라델피아
- mysql
- JPA
- java
- 증시
- Today
- Total
HeBhy, since 1983.
Spring에서 hibernate(Jpa)사용시, Spring transaction(@org.springframework.transaction.annotation.Transactional)을 사용하면 JpaTransactionManager.setGlobalRollbackOnParticipationFailure(true)가 기본값이라서.. method 단위 호출시 하위 어느곳에서라도 에러가 뜨면 전체가 롤백되어버리는데요, 대안으로 @Transactional(propagation = Propagation.NESTED)를 사용하려고 하면, 전역롤백 설정을 변경하지 않고는 해당 method에서만 롤백을 방지하는건 불가능하다는 에러가 뜹니다. RollbackException: Transaction marked a..
jackson annotation에서 @JsonView를 적용하여 같은 Entity 에 대해 RestController mapping별로 다른 출력을 원할 경우, @RequestMapping(@GetMapping 등 동일..) 에 @JsonView를 붙이지 않으면 Entity에 선언한 @JsonView가 무효화 될 경우가 있습니다. 예를 들어, car entity안의 number라는 값에 @JsonView(JsonViewVisibility.ViewAll.class) private String number; 처럼 적용했는데, 그대로 json string이 출력됩니다. 그렇다고 일일이 @RequestMapping에 @JsonView(default class)를 붙일수는 없겠죠.. 그래서 @JsonView가 ..
오늘 메일 알림이 왔네요.. 2.12에서 적용한다고 합니다. 나오면 코드가 좀 더 깔끔해지겠네요..ㅎㅎ 엔티티 내에 객체가 많으면 일일이 @JsonIgnoreProperties로 제거하기 힘들죠.. 그냥 필요한 것만 뽑아쓰면 되는데..
@OneToMany 같은 1:n 관계에서.. 보통 위 검색어로 검색을 하면.. 추천답변이 CascadeType.ALL 이나 CascadeType.PERSIST 를 지우고 CascadeType.MERGE로 사용하라는 내용이 많습니다. (@ManyToOne같은 경우는 MERGE만 써도 무방합니다.) 하지만, 근본적인 문제해결이 될 수 없는 경우가 있는데, 바로 "orphanRemoval = true" 속성이 있는 경우입니다. 예를 들어, 게시판에 파일을 첨부하게 될 경우, 새 게시물에 PERSIST 속성이 없다면 파일첨부를 위해 추가 코드를 작성해야 할지도 모릅니다. (부모엔티티 save시 하위엔티티가 자동으로 PERSIST되지 않으므로 파일첨부가 안된다. -> 글 수정시에는 정상으로 파일첨부됨) 만일, o..
Redis 클러스터를 통해 메모리만 충분하다면.. 그리고 자주 갱신되지 않는 데이터라면 엄청난 속도 향상을 가져다 주는 캐시이니 꼭 사용합시다.. 1. 스프링 부트의 설정파일을 사용하지 않습니다. (커스텀 작업이 필요하므로) 2. 역직렬화시, 에러뿜뿜을 방지해줍니다. -devtools 안꺼도 됩니다. 에러가 나는 가장 빈번한 이유는 detach되지 않은(persistant bag)을 가진 entity를 그대로 저장했기 때문이니.. @Cacheable이나 @CachePut시에 cacheManager="gsonCacheManager"로 변경해주면 됩니다.. 3. 캐시별 시간 차등이(cacheName을 통해) 가능합니다. 4. Json 캐시매니저를 사용해서, 일반 객체로 저장(로딩)시 에러가 나는것들은 jso..