
원래 기본적으로 Spring data jpa를 쓰게 되면 table 명이나 column에 CamelCase 규칙에 맞게 잘 적어두면 SQL로 변환할 때 알아서 UnderScore로 변환하게 되어 있습니다. 근데 프로젝트를 하면서 보니 작동을 하지 않는 일이 발생했습니다. 어딜 봐도 Naming 전략에 대해 수정한 곳도 없는데 대체 왜...? 심지어 yaml에 직접적으로 설정을 해줘도 동작하지 않았습니다. 한참을 구글링하며 찾아 봤는데 공짜 챗-GPT도 알아내지 못한 것을 구글 AI 요약님이 알려 주셨습니다(사실, 둘 다 공짜인 건 마찬가지긴 한데...). 원인은 아래와 같았습니다. EntityManagerFactory를 따로 설정 했거나 다중 DB 소스 설정을 해두면 문제가 발생 한다는데 정확하게 두 ..
JPA와 Kotlin JDSL을 섞어서 프로젝트를 진행하다 보면 Service 내에 SQL 문법을 작성해야 할 경우가 생깁니다. 물론, 이렇게 진행해도 크게 상관은 없긴 한데 제 생각에 Query 같은 것 들은 모두 Repository 내에 적혔으면 좋겠다는 생각이 들었단 말이죠. 너무 난잡해 보이는 것도 있고 분리가 되었으면 좋겠다는 생각도 들고.. 근데 무작정 Repository 내 Interface에 Kotlin JDSL을 사용한 로직을 작성하고 Method 명을 아무렇게나 작성하면 JPA의 Named Lookup Strategy에 따라서 에러가 발생하게 됩니다. @Query 메소드를 써서 따로 Query를 쓰지 않는 이상 JPA에서는 이건 우리가 만들어줘야 하는 쿼리구나?라고 인식하기 때문에 fi..
AG Grid는 많은 기본적인 기능을 제공하는 매우 강력한 Grid 제품입니다. 저 또한 손 쉽게 사용이 가능하고 여러 가지 많은 기능들을 제공해주는 AG Grid를 자주 사용합니다. 어쩌다 이번 개발 프로젝트에서 가볍게 thymeleaf를 이용한 프론트를 구성해야 하게 되었는데 Grid로 이전에 사용해 왔던 AG Grid를 채택하여 사용하게 되었습니다. 다만 문제가 데이터 하나에 자식 데이터로 여러 개를 표현해야 해서 Height를 조정해야 될 필요성이 생겼는데, 이래 저래 둘러보니 모두 Enterprise 버전에서만 기능들이 제공되었습니다. 예산도 없고 가진 건 시간 뿐인 가난한 개발자는 고뇌에 빠져 한참을 구글링도 하고 Chatgpt씨와 열심히 대화도 나누어 봤지만 방법이 없었습니다.. 이런 제기랄..
한창 또 삽질하고 있는 와중에 R2dbc로 업데이트를 하니 갑자기 CreateDate로 지정한 컬럼에서 update가 일어나는 문제가 발생했습니다. 여러 군데 알아보니 @Column(update=false)를 쓰라는데, 그런 것 따위 해당 Annotation에서 지원해 주지 않는 걸...? ^,^ 일단 꾸역꾸역 원본 데이터 불러와서 set 해주는 걸로 하려고 했는데, 뭔가 약간 그런 기분이랄까요. 깨끗하게 해결되지 않은 찜찜한 느낌.. 그런 느낌이 들어 조금 만 더 찾아보니 아래와 같은 방법이 있었습니다.1234 @JsonIgnore @CreatedDate @InsertOnlyProperty private LocalDateTime createDatetime;cs 위와 같이 @Ins..
- Total
- Today
- Yesterday