개인 토이 프로젝트 진행 중인데 일대일 매핑 관련하여 질문이 있습니다.
524
작성한 질문수 18
[질문 내용]
보안매체와 토큰이라는 엔티티 클래스가 있습니다.
보안매체 하나에 서버에서 부여받은 토큰을 따로 db에 저장하여 관리하려고 하는데요. 하나의 보안매체에서는 유효한 토큰 하나만 부여 가능하므로 OneToOne 관계로 관계를 맺었습니다. 그런데 이 토큰은 일정기간이 지나면 만료가 되고 결국 만료기간이 지나면 새로운 토큰을 생성해야합니다. 이렇게 된다면 하나의 보안매체에 여러개의 토큰이 매칭 될 수 있는데.. 이건 oneToMany 관계이고, 비지니스에서 쿼리 수행을 통해 만료 안된 토큰을 추출 해야하는 상황인걸까요? 조금 혼선이 옵니다 ㅠㅠ 도움 주시면 감사하겠습니다.
답변 1
0
안녕하세요. 정정훈님, 공식 서포터즈 OMG입니다.
하나의 보안매체에 만료가 되거나, 되지 않은 상태의 토큰이 연관관계를 맺는다면 일대다로 보는게 맞는것 같습니다 :)
토큰을 List로 하여, 토큰에는 만료여부에 대한 상태 필드를 두고 질문에 남기신대로 토큰을 추출하면 될 것 같습니다 ^^
감사합니다.
0
답변해주셔서 감사합니다.
그럼 연관관계 매핑을 할 때 이런식으로 엔티티와의 비즈니스 특성에 따라 1:1 / 1:n 매핑을 하는게 맞을까요? 그냥 원론적인 개념으로만 봤을 때 보안매체에는 토큰 하나만 부여될 수 있다. 인데 비지니스적인 관계를 따지고 보면 한 보안매체에는 여러개의 토큰 중 활동상태(만료안된) 토큰을 이용한다라는 관점에서 1:n 이 되는 것 처럼요. 그리고 일대일로 해놓고 토큰을 추출하는 jpql으로 활동중인 토큰을 select 하는건 잘못된 생각일까요? ㅠ
0
답변이 늦었습니다. 추가로 질문도 남겨주셨더라구요.
연관관계 매핑을 할 때 이런식으로 엔티티와의 비즈니스 특성에 따라 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





