2010-05-10 2 views
1

과 다 대다 링크 테이블을 처리합니다. 사용자 : 완성도를 위해서방법은 다음과 같은 대표적인 DB-디자인을 가정 추가 열

<many-to-many name="roles" mapped-by="users"> 
    <join-table name="USERS_ROLES"> 
    <join-column name="USER_ID" /> 
    <inverse-join-column name="ROLE_ID" /> 
    </join-table> 
</many-to-many> 

, 역할의 해당 매핑 : 나는 또한 링크 테이블에 대한 매핑을 만들 수 이제

<many-to-many name="users" mapped-by="roles"> 
    <join-table name="USERS_ROLES"> 
    <join-column name="FK_ROLE_ID" /> 
    <inverse-join-column name="FK_USER_ID" /> 
    </join-table> 
</many-to-many> 

,하지만 내가해야 할 그래서 (자바 객체/클래스에 매핑 된) 링크 된 테이블의 속성에 액세스 할 수 있습니까? 사용자가 로그인하여 관심있는 역할을 선택하고 일치하는 비밀번호를 입력해야합니다. 물론 현재 설정에서는 사용자가 할당 된 모든 역할을 얻을 수 있지만 그 반대의 경우도 있지만 로그인 데이터 또는 사용자와 역할의 관계에 해당하는 다른 속성과 비교할 수는 없습니다. 간단히 말해서, 링크 된 테이블의 속성에 액세스하는 방법을 알 수 없거나이를 매핑 -xml에 매핑해야합니다.

Thx 많이 미리!

답변

1

M-N은 아닙니다. 중간 클래스 (로그인과 암호 포함)가있는 2 1-N입니다.

+0

로그인 정보가 사용자에게 바인드되는 일반적인 방법이지만 모든 사용자 - 역할 관계에 대해 다른 로그인 정보가 필요합니다. 따라서 사용자가 role1로 로그인하려면 다른 로그인 정보를 입력해야하며 role2로 로그인해야합니다. – VuuRWerK

+0

클래스를 사용하여 여러 가지 방법을 사용할 수 있습니다. 나는 그것이 단순히 M-N 관계가 아니라는 것을 말하고있다. 관계에 속성을 허용하는 자바 컨테이너가 없다. 따라서 속성을 중간 클래스로 분리하거나 역할의 관련 객체로 가져야합니다. – DataNucleus

+0

흠, 잘 모르겠다. 내가지도/추가 속성과 링크 테이블을 대표하고 사용자 및 역할 엔티티에 바인딩 모델/엔티티를 만드는 방법이 필요 같아요. 따라서 사용자/역할 조합을 통해 "링크 엔티티"에 첨부 된 정보를 얻는 방법이 있어야합니다. 하지만 나는 그러한 "링크 엔티티"와의 바인딩을 어떻게 인식해야하는지 모르겠다. – VuuRWerK

관련 문제