求hibernate继承映射:
customer(name,address) & salesman(name,sex,address)extend user(id,login_name,login_pwd) 但customer与salesman是多对一,即多客户对映一商务,这种关系在hibernate中怎么写

解决方案 »

  1.   

    我使用的hibernate的注解方法,代码如下。。
    不过你的题目似乎有的点错误吧 name,address属性你应该抽取到User这实体类里面
    而且项目中涉及也没有让customer继承 User实体的,因为User一般用于系统登录和系统打交道的
    不涉及到实际业务操作吧。。 一般都是抽取customer作为父类,然后分为个人客户PersonCustomer和公司客户,而销售人员则另外建立一个实体类 Person。
      

  2.   

    你的题目有问题哦,使用继承映射一般都是将所有子类设计成一张数据库表,所以你的多对一关系就无法表示了。
    这里我只帖一下继承映射的代码,现写的
    User实体@Entity
    @Table(name="test_user")
    @DiscriminatorColumn(name="type")  //加入一个辨别字段,辨别是customer还是saleman
    public class User { @Id
    @GeneratedValue
    private int id ;
    private String login_name;
    private String login_pwd;

    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getLogin_name() {
    return login_name;
    }
    public void setLogin_name(String login_name) {
    this.login_name = login_name;
    }
    public String getLogin_pwd() {
    return login_pwd;
    }
    public void setLogin_pwd(String login_pwd) {
    this.login_pwd = login_pwd;
    }
    }
    Customer
    @Entity
    @DiscriminatorValue("Customer") //设计辨别字段的值为Customer
    public class Customer extends User {
    private int name;
    private String address;

    public int getName() {
    return name;
    }
    public void setName(int name) {
    this.name = name;
    }
    public String getAddress() {
    return address;
    }
    public void setAddress(String address) {
    this.address = address;
    }}
    Salesman实体
    @Entity
    @DiscriminatorValue("Salesman") //设计辨别字段的值为Customer
    public class Salesman extends User { private String name;
    private String address;
    private String sex;

    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public String getAddress() {
    return address;
    }
    public void setAddress(String address) {
    this.address = address;
    }
    public String getSex() {
    return sex;
    }
    public void setSex(String sex) {
    this.sex = sex;
    }
      

  3.   

    thks for fengjssy's reminding