三张表:用户表user(userid(PK),name);邮件内容表email(mailid(PK),sender,title);接收者receiver(receiverid (PK),mailid,receiver),email.mailid = receiver.mailid ; user.userid = receiver.receiver要求:根据userid 查找该用户所有 发送和接收的邮件! 配置文件怎么映射呢?

解决方案 »

  1.   

    其实你hbm.xml文件不配置,直接写语句一样可以识别。
      

  2.   

    你邮件内容表里面的内容是早已定义好的还是每次发送邮件定义?从你给的信息来看你接收者是个中间表,所以:用户表->接收者(one-to-many),邮件内容表->接收者(one-to-many)
      

  3.   

    那就根据你给出的条件来映射
    email.mailid = receiver.mailid ; user.userid = receiver.receiver1. 由用户查询其所接收邮件  
    user.userid = receiver.receiver => receiver.mailid = email.mailid 这里涉及三张表: user, receiver, email
    user与email的关系由receiver做媒关联,一般而言,user与email的关系是many to many的(因为同一封邮件可以由多人接收,同一个人可以接收多封邮件,特殊情况下同一封邮件只由一人接收,那就是one to many)2. 由用户查询其所发送邮件(是不是还应该同样有个sender表)  
    user.userid = sender.sender => sender.mailid = email.mailid 
    同样地,user与email的关系由sender做媒关联,一般而言,user与email的关系是one to many的(因为同一封邮件是由一个人发送的,同一个人可以发送多封邮件,特殊情况下同一封邮件可以由多人发送,那就是many to many)