inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 ORM 표준 JPA 프로그래밍 - 기본편

일대일 [1:1]

개인 토이 프로젝트 진행 중인데 일대일 매핑 관련하여 질문이 있습니다.

524

인생은회전목마

작성한 질문수 18

0

[질문 내용]
보안매체와 토큰이라는 엔티티 클래스가 있습니다.

보안매체 하나에 서버에서 부여받은 토큰을 따로 db에 저장하여 관리하려고 하는데요. 하나의 보안매체에서는 유효한 토큰 하나만 부여 가능하므로 OneToOne 관계로 관계를 맺었습니다. 그런데 이 토큰은 일정기간이 지나면 만료가 되고 결국 만료기간이 지나면 새로운 토큰을 생성해야합니다. 이렇게 된다면 하나의 보안매체에 여러개의 토큰이 매칭 될 수 있는데.. 이건 oneToMany 관계이고, 비지니스에서 쿼리 수행을 통해 만료 안된 토큰을 추출 해야하는 상황인걸까요? 조금 혼선이 옵니다 ㅠㅠ 도움 주시면 감사하겠습니다.

java jpa

답변 1

0

OMG

안녕하세요. 정정훈님, 공식 서포터즈 OMG입니다.

하나의 보안매체에 만료가 되거나, 되지 않은 상태의 토큰이 연관관계를 맺는다면 일대다로 보는게 맞는것 같습니다 :)

토큰을 List로 하여, 토큰에는 만료여부에 대한 상태 필드를 두고 질문에 남기신대로 토큰을 추출하면 될 것 같습니다 ^^

감사합니다.

0

인생은회전목마

답변해주셔서 감사합니다.

그럼 연관관계 매핑을 할 때 이런식으로 엔티티와의 비즈니스 특성에 따라 1:1 / 1:n 매핑을 하는게 맞을까요? 그냥 원론적인 개념으로만 봤을 때 보안매체에는 토큰 하나만 부여될 수 있다. 인데 비지니스적인 관계를 따지고 보면 한 보안매체에는 여러개의 토큰 중 활동상태(만료안된) 토큰을 이용한다라는 관점에서 1:n 이 되는 것 처럼요. 그리고 일대일로 해놓고 토큰을 추출하는 jpql으로 활동중인 토큰을 select 하는건 잘못된 생각일까요? ㅠ

0

OMG

답변이 늦었습니다. 추가로 질문도 남겨주셨더라구요.

 

연관관계 매핑을 할 때 이런식으로 엔티티와의 비즈니스 특성에 따라 1:1 / 1:n 매핑을 하는게 맞을까요? 그냥 원론적인 개념으로만 봤을 때 보안매체에는 토큰 하나만 부여될 수 있다. 인데 비지니스적인 관계를 따지고 보면 한 보안매체에는 여러개의 토큰 중 활동상태(만료안된) 토큰을 이용한다라는 관점에서 1:n 이 되는 것 처럼요.

=> 네, 비즈니스 특성에 따라 연관관계 매핑을일대일로 할지 일대다/다대일로 할지 정하시면 될 것 같습니다. 현실속 세계는 '나'라는 존재의 하나지만, 게임속 나라는 캐릭터는 게임에 따라 여러개를 생성할 수 있는 것처럼 내가 개발하려는 세계가 어떤 세계인지에 따라 그 특성(연연관계)은 달라질 수 있습니다.

 

그리고 일대일로 해놓고 토큰을 추출하는 jpql으로 활동중인 토큰을 select 하는건 잘못된 생각일까요? ㅠ

=> 이 부분은 개발하려는 프로그램에 따라 달라질 것 같습니다. 조금 더 구체적인 코드 예시가 있으면 아는 선에서 답변을 드릴 수 있을 것 같아요.

 

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

21

2

inheritance startegy 선택시 고려사항

0

21

1

Entity 동등성 비교

0

18

1

실무 조언 관련 질문입니다.

0

44

1

H2데이터베이스 파일 생성

0

56

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

52

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

51

1

JPQL 메소드와 락

0

55

1

Delivery @OneToOne

0

60

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

92

2

UnsupportedOperationException 발생

0

85

3

H2 Database 연결이 안됩니다.

0

92

2

연관관계 매핑 질문드립니다.

0

85

2

h2데이터베이스 실행오류

0

107

2

persistence.xml

0

106

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

80

1

영속성 컨텍스트

0

65

1

JPA 프록시

0

94

1

Native Query와 MyBatis

0

68

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

85

1

임베디드 타입 예시 코드 관련 질문

0

114

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

94

3

인텔리제이 패키지 커서 단축키 질문

0

108

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

143

1