2017-02-28 1 views
0

나는 다음과 같은 클래스 구조를 가지고 :최대 절전 모드 혼합 상속 전략 hierachy

Class diagram

나 최대 절전 모드로 다음과 같은 세 가지 테이블을 생성하고 싶은

:

  • PlanItem을 : 모두와 함께 해당 속성
  • 작업 : 모든 속성 및 하위 속성이 포함
  • 단계 :

    @Entity 
    @Inheritance(strategy = InheritanceType.JOINED) 
    public abstract class PlanItem {...} 
    
    @Entity 
    @Inheritance(strategy = InheritanceType.SINGLE_TABLE) 
    public class Stage extends PlanItem {...} 
    
    @Entity 
    @Inheritance(strategy = InheritanceType.SINGLE_TABLE) 
    public class Task extends PlanItem {...} 
    
    @Entity 
    public class HumanTask extends Task {...} 
    
    @Entity 
    public class ProcessTask extends Task {...} 
    
    @Entity 
    public class CaseTask extends Task {...} 
    

    이미 보조 테이블로 실험하고 더 많거나 적은 원하는 결과를 얻었다 :

    @Entity 
    @Inheritance(strategy = InheritanceType.SINGLE_TABLE) 
    public abstract class PlanItem {...} 
    
    @Entity 
    @SecondaryTable(name = "Stage") 
    public class Stage extends PlanItem {...} 
    
    @Entity 
    @SecondaryTable(name = "Task") 
    public class Task extends PlanItem {...} 
    
    @Entity 
    @SecondaryTable(name = "Task") 
    public class HumanTask extends Task {...} 
    
    @Entity 
    @SecondaryTable(name = "Task") 
    public class ProcessTask extends Task {...} 
    
    @Entity 
    @SecondaryTable(name = "Task") 
    public class CaseTask extends Task {...} 
    

    을하지만이 inheritancetypes을 혼합하는 시도했지만 작동하지 않았다

찬사 좀 더 우아하고 단순한 솔루션이 존재하는지 궁금합니다.

답변

1

현재로서는 불가능합니다. 자세한 내용은 following issue을 참조하십시오. 보조 테이블을 사용하는 "해킹"은 현재 얻을 수있는 최선의 방법이라고 생각합니다.

+0

답장을 보내 주셔서 감사합니다. 귀하의 링크에서 그들은 "이 문제에 대한 수정은 이미 5.0 코드베이스에 있습니다. 나는 이것이 4.x에서 다루어지는 것을 예견하지 않습니다."라고 말합니다. 나는 Hibernate-core-5.0.2.final.jar를 사용했으나이 버전의 Hibernate에서는 불가능하다. – Tim

+1

그렇기 때문에 아직 해결되지 않았지만 아직 완전히 구현되지 않았습니다. –

관련 문제