Auditing 관련 질문 입니다
글을 조회하면 조회수가 1 올라가도록 서비스를 짰는데, 문제는 조회수를 올리면서 lastModifiedDate 필드도 함께 업데이트 됩니다.
제가 원하는 동작은 글 작성자가 글을 수정했을 때만 lastModifiedDate 필드가 업데이트되는 것입니다.
이 경우에는 상속을 하지 않고 lastModifiedDate 필드를 따로 만들어 수정 메소드에서 lastModifiedDate 필드를 수정하는게 best practice 일까요?
감사합니다.
@MappedSuperclass
@Getter
@EntityListeners(AuditingEntityListener.class)
public class BaseEntity {
@CreatedDate
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime lastModifiedDate;
public boolean isModified() {
return !createdDate.isEqual(lastModifiedDate);
}
}
@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Post extends BaseEntity {
@Id
@GeneratedValue
@Column(name = "post_id")
private Long id;
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "member_id")
private Member member;
private int views;
private String title;
@Column(length = 2000)
private String content;
public Post(Member member, String title, String content) {
this.member = member;
this.title = title;
this.content = content;
}
public void increaseViews() {
views += 1;
}
}
@Service
@RequiredArgsConstructor
@Transactional
public class PostService {
private final PostRepository postRepository;
public Post write(Post post) {
return postRepository.save(post);
}
@Transactional(readOnly = true)
public Page<Post> findAll(Pageable pageable) {
return postRepository.findAll(pageable);
}
public Post view(Long id) throws PostNotFoundException {
Post post = postRepository.findById(id).orElseThrow(() -> new PostNotFoundException("게시물을 찾을 수 없습니다."));
post.increaseViews();
return post;
}
}
public interface PostRepository extends JpaRepository<Post, Long> {
@Override
@EntityGraph(attributePaths = {"member"})
Page<Post> findAll(Pageable pageable);
}
changeTeam 메서드 질문
0
34
1
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
87
1
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
128
3
MemberRepository 구현체
0
71
1
pdf 표현 질문드립니다.
0
77
1
로그가 남지 않는 문제.
0
98
1
테스트 라이브러리가 강의는 junit4가 맞나요??
0
78
2
pdf 파일과 차이점이 있는 것같은데 문제 없나요?
0
75
2
@PrePersist, @PreUpdate 호출 시점 질문드립니다.
0
102
2
Sort 인터페이스는 잘 사용 안하나요?
0
59
1
스캔대상 질문드립니다.
0
48
1
하이버네이트6에서의 최적화에 이은 질문
0
92
1
save() vs saveAndFlush DB 통신 횟수
0
58
1
순수 JPA 리포지토리 코드 수정부분
0
92
2
bulk연산 후 flush하는 이유를 모르겠어요
0
163
3
bulk insert 질문입니다.
0
191
2
교만했던 것 같아요.
0
152
1
RESTful 강의는 안하시는 건지 궁금합니다.
0
154
2
동적 테이블에 대한 질문
0
89
1
영속성 전이와 연관관계
0
141
2
강의 10:25 질문
0
78
1
단건 update 질문
0
104
2
엔티티 와 도메인의 경계
0
129
1
UsernameOnlyDto 타입 type mismatch 오류
0
123
1





