@PreUpdate 시 @Transient 필드 null 로 대입되는 현상 관련 문의
430
작성한 질문수 1
안녕하세요, 스프링 데이터 JPA 관련 강의들을 잘 듣고 있습니다. (다 보았지만 다시 볼 예정입니다 ㅎㅎ..)
@PreUpdate 관련하여 기대한 바와 다른 동작이 확인되어 문의드립니다.
Audit 관련 정보를 기록하려 하고, 이때 Listener 를 사용하지 않고 등록일/등록자 를 저장하고자 합니다.
Board 게시판은 MyAudit 클래스를 상속하고 있으며, MyAudit은 userId라는 @Transient 가 적용된 필드를 가지고 있습니다.
@PrePersist
public void prePersist() {
creator = userId; // userId는 preUpdate가 속해있는 class field 로써 @Transient 적용
createAt = LocalDateTime.now();
modifier = userId; // userId는 preUpdate가 속해있는 class field 로써 @Transient 적용
updateAt = LocalDateTime.now();
}
@PreUpdate
public void preUpdate() {
modifier = userId; // userId는 preUpdate가 속해있는 class field 로써 @Transient 적용
updateAt = LocalDateTime.now();
}
PrePersist는 의도한 바처럼 Transient 필드 값을 가지고 저장하나, preUpdate의 경우 modifier에 null이 대입이 됩니다.
Listener를 쓴다면 해결이 되겠지만 @PreUpdate에서 Transient 필드가 왜 null이 되는지 궁금합니다. 그리고 의도한 바처럼 Transient 필드의 값을 PreUpdate 시점에 가져와서 대입이 가능할지 문의드립니다.
답변 1
0
안녕하세요. Jean님
도움을 드리고 싶은데, 이런 상황은 사실 코드로 돌려봐야 찾을 수 있어서요.
같은 상황을 재현할 수 있는 동작하는 테스트 코드를 보내주세요^^ 전체 프로젝트를 압축해서 올려주세요
감사합니다.
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
67
1
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
103
3
MemberRepository 구현체
0
56
1
pdf 표현 질문드립니다.
0
60
1
로그가 남지 않는 문제.
0
79
1
테스트 라이브러리가 강의는 junit4가 맞나요??
0
68
2
pdf 파일과 차이점이 있는 것같은데 문제 없나요?
0
71
2
@PrePersist, @PreUpdate 호출 시점 질문드립니다.
0
91
2
Sort 인터페이스는 잘 사용 안하나요?
0
52
1
스캔대상 질문드립니다.
0
45
1
하이버네이트6에서의 최적화에 이은 질문
0
82
1
save() vs saveAndFlush DB 통신 횟수
0
51
1
순수 JPA 리포지토리 코드 수정부분
0
85
2
bulk연산 후 flush하는 이유를 모르겠어요
0
150
3
bulk insert 질문입니다.
0
174
2
교만했던 것 같아요.
0
145
1
RESTful 강의는 안하시는 건지 궁금합니다.
0
144
2
동적 테이블에 대한 질문
0
85
1
영속성 전이와 연관관계
0
130
2
강의 10:25 질문
0
73
1
단건 update 질문
0
95
2
엔티티 와 도메인의 경계
0
126
1
UsernameOnlyDto 타입 type mismatch 오류
0
119
1
Projection 개념과 데이터 전달과정에 대해 질문 있습니다.
0
135
1





