이벤트 실행시점 설명 @PrePersist 엔티티가 생성될 때 엔티티가 생성될 때마다 실행되어야 하는 로직을 구현하는 데 사용됩니다. 예를 들어, 엔티티가 생성될 때마다 현재 날짜를 값으로 설정하는 로직을 구현할 수 있습니다. @PreUpdate 엔티티가 업데이트 될 때 엔티티가 업데이트될 때마다 실행되어야 하는 로직을 구현하는 데 사용됩니다. 예를 들어, 엔티티가 업데이트될 때마다 변경된 값을 기록하는 로직을 구현할 수 있습니다. 특정값을 변경했을 때 변경일을 등록하는 부분을 작성할일 있었는데 나는 @PrePersist 가 Insert, Update 시에 동일하게 작동한다고 생각하고 코드를 작성했는데 Update 테스트를 아무리해도 적용이 되질 않아... 혹시 엔티티가 생성될 때만 되나하고 Insert..
보통 날짜값을 사용할 때 db와 뷰와의 관계에서 컨버팅을 자주 하게 된다. DB에는 예쁘게 들어가있지만 사용자 화면에 그대로 뿌리면 보통 우리가 보던 포맷이 아니기 때문에 매우 별로다. 그래서 데이터 조회해올 때 컨버팅한다던가 애초에 db에 string 형태로 넣는 경우다. 현재 프로젝트에서 날짜 컬럼타입을 timestamp 형식으로 사용하고 있다. JPA 에서 조회해서 뷰에 그대로 뿌려보니 2023-07-05T16:05:41 날짜와 시간 값을 구분하는 T가 들어간다. 그래서 엔티티는 LocalDateTime 타입으로, DTO 는 String 타입으로 mapstruct 에서 자동으로 컨버팅 되도록 해보려고 한다. 엔티티와 DTO의 날짜 필드타입을 다르게 선언하였다. @Entity public class ..
IB Sheet8 그리드 제품을 신규 프로젝트에도 사용하기로 되었는데 기존 프로젝트에는 공통 CRUD 컨트롤러/서비스에서 IB Sheet의 데이터 Map 방식을 가공하여 mybatis 쿼리 xml에 맵핑하는 방식으로 되어있었다. 기능을 빠르게 만들어 내기에는 아주 편안한? 그러나 유지보수하기에는 찾기 아주 불편한? 편안한 이유는 기능마다의 컨트롤러/서비스/DTO를 구성할 필요가 없으며, mybatis xml 쿼리만 생성하면 되었기 때문에 java 코드를 작성할 필요가 없었음. 전형적인 대한민국 si 프로젝트 방식으로 구성 되어있었음. 신규프로젝트에는 JPA를 적용하기로 했고, 그러다 보니 기존 공통 CRUD를 그대로 가져다 쓸 수 없었음. (제네릭방식으로 잘 구성하면 다시 재활용 가능하나, 난 유지보수가..
JPA를 꾸준히 이용하며 학습중인데 이번에 테이블 연관관계를 설정하다가 복합키테이블을 연관지을일이 생겼다. 내 머리속으로 이해한데로 엔티티를 구성하고 테스트 쿼리를 수행했으나... 조인들이 제대로 걸리지 않았다. 그래서 무언가 복합키 상황일때 엔티티간 연관관계를 잘못 구성했는가 싶어 예제 테이블 만들어 다시 처음부터 구성해봤다. 테이블 구조는 아래와 같다. 사용자 정보가 있는 Users 테이블이 있고 권한정보가 있는 Roles 테이블이 있다. 그리고 유저에게 할당된 권한정보가 있는 UserRoles 테이블이 있다. UserRoles는 Users의 키와 Roles의 키를 포함하는 식별관계이다. UserRoles 엔티티의 키값이 2개가 되어 일반 엔티티를 구성할 수 없다. 이런 복합키를 가진 엔티티를 구성하..
지난번 이클립스(STS)와 인텔리제이에서 QueryDSL Q클래스를 생성해서 잘 동작하는 것을 확인했었다. [SpringBoot] QueryDSL Q클래스 생성하기 : annotationProcessor 방식 (feat.intelliJ) [SpringBoot] QueryDSL Q클래스 생성하기(feat.intelliJ) 지난번 STS (이클립스) 에서 QueryDSL을 설정했었다. [SpringBoot] QueryDSL Q클래스 생성하기(feat.STS) [SpringBoot] QueryDSL Q클래스 생성하기(feat.STS) JPA JPQL 을 사용하던 도중 QueryDSL 로 쿼리를 짜보고 싶어 셋팅 jong-bae.tistory.com 프로젝트를 전체 구동시킬때는 querydsl 이 동작하는데는 ..
지난번 STS (이클립스) 에서 QueryDSL을 설정했었다. [SpringBoot] QueryDSL Q클래스 생성하기 : 플러그인 방식 (feat.STS) [SpringBoot] QueryDSL Q클래스 생성하기(feat.STS) JPA JPQL 을 사용하던 도중 QueryDSL 로 쿼리를 짜보고 싶어 셋팅해봄. SPRING DATA JPA 레퍼런스에 queryDSL이 언급은 되는데 설정하는 방법 같은 건 딱히 없어서 블로그들 참고하여 셋팅해봄. 먼저 build. jong-bae.tistory.com 이번에 인텔리J로 같은 프로젝트 import 해서 진행하다보니 gradle 설정을 약간 조정해줘야 했다. 그래서 간단히 그 부분만 작성하도록 한다. 위 링크에 있는 이클립스 설정대로 IntelliJ 에..