2009-06-19 7 views
0

테이블을 나타내는 도메인 개체 클래스가 있습니다. 이 클래스는 다른 테이블에 대한 연결을 가지고 있지만 소스 클래스의 속성은 대상 클래스의 속성과 이름이 같지 않으며 매핑하는 방법을 모르겠습니다. 여기 기본 키의 이름이 똑같지 않으면 Hibernate에서 객체 세트를 매핑하는 방법은 무엇입니까?

은 세트 (한 CT 많은 R 인스턴스에) 가지고있는 클래스의 예는 다음과 같습니다

public class CT { 
    // This is the property in the property-ref down below 
    private String b; 

    // The set of Rs I want to get - there may be none that correspond to a CT instance. 
    private Set rs; 
} 

public class R { 
    // This property is mapped to the column name below. 
    private String rBc; 
} 

<!--Snippet of the mapping for class CT--> 

<set name="rs" lazy="true" sort="MyComparator" table="R" > 
     <key column="R_COLUMN_NAME_THAT_REPRESENTS_THE_RELATIONSHIP" property-ref="b" /> 
     <one-to-many class="CLASS_THAT_R_IS" /> 
</set> 

Hibernate는이 매핑을 받아,하지만 나는 CT 인스턴스에서 루피의 집합을 끌어 때 나는 존재해야한다는 것을 알고, 나는 빈 PersistentSet을 얻는다.

각 CT 인스턴스마다 하나 이상의 R이 없을 수도 있습니다. 이것이 내가 비교기를 가지고있는 이유이다. Hibernate에게 명시 적 SQL없이 ORDER BY 절을하는 법을 쉽게 알 수있는 방법을 알아낼 수 없다. (나는 Hibernate 매핑에서 쓰는 것을 주저한다.)

누군가 여기에서 나를 도와 주시겠습니까?

+0

개체의 상황이 명확하게 표시되지 않습니다. 개체가 개체에서 수행중인 작업에 대해 더 자세히 말할 수 있습니까? 관련 항목은 무엇입니까? CT 및 R의 수명 및 소유 상태? 모든 컬렉션을 다 대일로 작성했습니다. 다 대일과 일대 다 방식으로 할 수있는 것의 차이점이있는 것 같습니다. – PanCrit

답변

0

이 문제는 <set ..> 매핑의 table="R"에있을 수 있습니다. 이것은 하위 테이블에서 외래 키를 직접 찾지 않고, 조인 테이블을 사용하도록 알려줍니다.