Date 형태를 LocalDateTime으로 변경 한 후 원래 yyyy-MM-dd HH:mm:ss 로 잘보이던 형태가 json으로 바껴서 나와서 당황 { "date": { "year": 2020, "month": 11, "day": 22 }, "time": { "hour": 17, "minute": 15, "second": 57, "nano": 0 } } 찾아보니 LocalDateTime과 LocalDate 둘다 해당하는듯 gson사용시에 해결하는 방법이다. import com.google.gson.JsonElement; import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; import com.googl..
@Transactional(readOnly = true)가 적용된 메서드에서 @Transactional 혹은 @Transactional(readOnly = false)가 적용된 메서드를 호출 할 경우 무조건 read-only Transaction이 적용된다. 트랙잭션이 전파되는 것은 맞지만 JDBC 벤더들 마다 readOnly속성의 구현이 된 벤더들도 있고 그렇지 않은 벤더들도 있다. 그래서 만약 이때 R을 제외한 CUD를 할 경우 에러를 발생한다. 이것은 참일수도 있고 거짓일 수도 있다. 적용이 되는 경우도 있고 안되는 경우도 있다고 한다. 정상적인 상황인 경우 readOnly는 트랜잭션 범위는 유지하되 조회 기능만 남겨두어 조회 속도가 개선되게끔 하려고 사용한다.
private static Map cash = new HashMap(); static { for (RoleType type : RoleType.values()) { cash.put(type.idx, type); } } hashMap 이 속도가 빠르므로 enum에는 map형태를 넣어 두는 것이 좋다. 람다식으로 cash 값을 넣을 수 있는데 굳이 static 블록을 선언한 이유는 jvm 가동시 static이 올라같때 같이 되기도 하고, 뒤에 람다식 같은걸로 쓸수도 있지만, static 함수이기 때문에 보통 static 블록으로 작성한다고 함