inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

새로운 엔티티를 구별하는 방법

BaseTimeEntity를 Item 에서 extends 해서 사용할 경우에는 어떻게 해야하는건지 궁금합니다.

823

Jun

작성한 질문수 1

1

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 네
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

해당 강의에서는 Item 내부에 createdDate 필드를 만들고 implements Persistable을 할 때
isNew 함수가 createdDate == null 을 하더라도 문제없이 동작할 수 있음을 확인했습니다.

그런데 Item 자체가 public class Item extends BaseEntity implements Persistable<String> 이런식이라면
즉, createdDate가 Item class 내부가 아닌, 외부에 존재한다면 isNew 함수를 만들때 createdDate를 참조해올 수 없는데 어떻게 해결해야하는지 궁금합니다.

제 개인적으로 해결방안이라고 생각한 것은

  1. BaseTimeEntity의 createdDate를 public으로 오픈한다.

  2. BaseTimeEntity에서 implements Persistable 을 받고 isNew함수를 정의한다.

    1. 이렇게 할 경우에 추가적으로 생기는 문제점은

      1. getId() 함수를 Override해야하는데, BaseTimeEntity class 내부에 id 값이 따로 없어서 곤란하다고 여겨집니다.

      2. getId() 함수를 만들어도 엔티티마다 id의 타입이 다를 수도 있다고 생각되는데 타입 문제는 어떻게 해결해야하는지 모르겠습니다.

이정도 두 가지가 떠오르긴 했는데, 효과적인 방법은 아니라고 생각되어

프로젝트 개발시에 엔티티들이 공통적으로 BaseEntity, BaseTimeEntity를 상속받고 있는 상황일때는 isNew함수를 어떻게 정의해야하는지 알려주시면 감사하겠습니다.

spring spring-boot jpa JPA java

답변 1

0

권선경

getter로 createdDate에 접근하면 될 것 같네요

0

김영한

권선경님 답변 감사합니다^^

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

75

1

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

107

3

MemberRepository 구현체

0

58

1

pdf 표현 질문드립니다.

0

62

1

로그가 남지 않는 문제.

0

82

1

테스트 라이브러리가 강의는 junit4가 맞나요??

0

72

2

pdf 파일과 차이점이 있는 것같은데 문제 없나요?

0

73

2

@PrePersist, @PreUpdate 호출 시점 질문드립니다.

0

93

2

Sort 인터페이스는 잘 사용 안하나요?

0

52

1

스캔대상 질문드립니다.

0

46

1

하이버네이트6에서의 최적화에 이은 질문

0

86

1

save() vs saveAndFlush DB 통신 횟수

0

54

1

순수 JPA 리포지토리 코드 수정부분

0

86

2

bulk연산 후 flush하는 이유를 모르겠어요

0

152

3

bulk insert 질문입니다.

0

178

2

교만했던 것 같아요.

0

147

1

RESTful 강의는 안하시는 건지 궁금합니다.

0

148

2

동적 테이블에 대한 질문

0

86

1

영속성 전이와 연관관계

0

131

2

강의 10:25 질문

0

74

1

단건 update 질문

0

97

2

엔티티 와 도메인의 경계

0

127

1

UsernameOnlyDto 타입 type mismatch 오류

0

121

1

Projection 개념과 데이터 전달과정에 대해 질문 있습니다.

0

136

1