2011-03-13 5 views
0

여기 내 문제가 있습니다. 나는 3 개의 클래스, 즉 돈 흐름을 나타내는 부모 클래스를 가지고있다. 소득을위한 것과 비용을위한 두 개의 하위 클래스. 문제는 상태가 아닌 동작을 재정의하는 것입니다. 그래서 데이터베이스에는 유형 컬럼이있는 테이블 하나만 있어야합니다. 조인 된 전략을 사용하여이를 수행 할 수 있지만 수입 및 지출 테이블은 여전히 ​​올바르게 작성됩니다. 이걸 매핑하는 방법이 있습니까?JPA 상속 모델링 문제

기본적으로 내 생각에, 오름은 "소득"또는 "비용"을 실례할지 여부를 알 수 있도록 유형 속성으로 통화 흐름을 나타내는 테이블을 하나만 가지는 것입니다. 저는 차이점이 행동이 아니라 주정부에 있기 때문에 이것을하고 싶습니다. 따라서 수입과 지출에 대한 표에는 키를 제외하고는 아무런 칼럼도 없을 것입니다.

하나의 클래스를 만들고 유형 속성을 가질 수는 있지만 매우 더러운 코드로 이어지고 polimorphism을 선호합니다. 게다가 내 코드는 그렇게 깨끗해 보인다.

답변

2

설명하는 소리는 정확히 Single Table inheritance type입니다. 모든 것이 하나의 테이블에 저장됩니다. Discriminator Column 만 지정하면 JPA는 그 값에 따라 사용할 객체 유형을 결정합니다. Discriminator Column의 java 문서에있는 예제는 수행 할 작업을 구현합니다.

0

저에게 모두 합리적이라고 생각합니다. 한 가지 질문은 데이터베이스 운영이 소득과 비용이 다른지 여부입니다. 또 다른 하나는 당신이 지금 가지고있는 상황을 넘어 모델이 진화 할 것으로 기대되는지 여부입니다.