2015-01-16 2 views
0

1 개의 클래스에 매핑되는 2 개의 테이블이있다. 이것은 작동하지만 개체를 ​​업데이트하려고 할 때 어떤 테이블에서 왔는지 모릅니다. 엔티티 이름을 저장하거나 가져올 수있는 방법이 있습니까?Hibernate는 엔티티 이름 값을 얻는다.

매핑 :

<hibernate-mapping> 
    <class name="model.object.ObjectAttributeType" table="OBJECTPARAMETERTYPE" entity-name="OBJECTPARAMETERTYPE"> 
    ... 
    </class> 
    <class name="model.object.ObjectAttributeType" table="OBJECTPROPERTYTYPE" entity-name="OBJECTPROPERTYTYPE"> 
     ... 
    </class> 
</hibernate-mapping> 

답변

2

당신은이 개 클래스

public class ParameterObjectAttributeType extends ObjectAttributeType 
public class PropertyObjectAttributeType extends ObjectAttributeType 

을 정의하고이 개 다른 테이블

+0

에 다른 클래스를 매핑 할 수 그래 그 옵션,하지만 서브 클래스는 것보다 완전히 비어 있습니다. 그리고 변수 물마루 hbm을 설정하거나 엔티티 이름을 얻을 수있는 경우에만 작동합니다. – ThijsJ

+0

이 답변은 정확합니다. 수퍼 클래스가 아닌 서브 클래스에 매핑하기 위해 hbm을 업데이트하면됩니다. 당신이 하이버 네이트를 부정확하게 사용하고 있다고 주장 하겠지만, 일반적으로 데이터베이스 테이블과 자바 엔티티 사이의 일대일 매핑이 될 것이다. 단일 책임이라는 관점에서 생각해보십시오. 동일한 객체에 두 개의 서로 다른 데이터 세트를 보유하는 것이 좋습니다. 기본적으로 두 테이블이있는 이유는 무엇입니까! – ConMan