2010-08-06 5 views
0

Bonjour j'espère que quelqu'un pourra m'aider à ce sujet.2 clés étrangères dans la même entité correspondant au même problème de clé primaire

J'ai une situation où j'ai: Entité utilisateur qui stocke tous mes utilisateurs y compris les administrateurs. Commentaires entité qui stocke tous les commentaires contre les utilisateurs. Mon problème est que je stocke également dans l'entité de commentaire l'identifiant de l'administrateur qui a fait le commentaire. Donc maintenant j'ai l'entité Commentaire ayant 2 champs userId et lors de la récupération d'une entité User, elle ne récupère aucun commentaire d'association.

Mon code de mappage est comme ci-dessous:

Au sein de l'entité utilisateur ..

<set name="MemberComments" cascade="all-delete-orphan" inverse="true"> 
    <key column="UserCommentId"/> 
    <one-to-many class="IlluminatiCoreUserComment"/> 
</set> 

Au sein de l'UserComment Entité

<id name="UserCommentId"> 
    <generator class="identity"/> 
</id> 
<many-to-one name="User" class="IlluminatiCoreMember" column="UserId" not-null="true"/> 
<property name="Comment" not-null="true"/> 
<property name="CreatedTimeStamp" not-null="true"/> 
<property name="ModifiedTimeStamp" not-null="true"/> 
<many-to-one name="CommentedByUser" class="IlluminatiCoreMember" column="CommentedByUserId" not-null="true" inverse="false"/> 

Comment puis-je faire MemberComments dans le point d'entité utilisateur à juste le champ plusieurs-à-un d'utilisateur?

Merci pour votre aide à l'avance

Répondre

0

L'élément <key> dans l'utilisateur devrait avoir le FK à utilisateur, pas l'id de UserComment. En d'autres termes, la même colonne que l'ID utilisateur Multiple-to-One.

Questions connexes