w13178131320 2017-07-25 09:39 采纳率: 0%
浏览 694

双向一对多配置错误,可以帮忙看看吗

package cn.itcast.F_Many2Many;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

public class App1 {

private static SessionFactory sf;
static{
    sf = new Configuration()
            .configure()
            .addClass(Project.class)
            .addClass(Developer.class)
            .buildSessionFactory();
}


@Test
public void save(){
    Session session = sf.openSession();

    Project pro_ds = new Project();
    pro_ds.setP_name("电商");

    Project pro_oa = new Project();
    pro_oa.setP_name("OA系统");

    Developer dev_zs = new Developer();
    dev_zs.setD_name("张三");

    Developer dev_ls = new Developer();
    dev_ls.setD_name("李四");

    Developer dev_ww = new Developer();
    dev_ww.setD_name("王五");

    Developer dev_ml = new Developer();
    dev_ml.setD_name("马六");

    pro_ds.getDeve().add(dev_zs);//电商   张三  李四 王五
    pro_ds.getDeve().add(dev_ls);
    pro_ds.getDeve().add(dev_ww);

    pro_oa.getDeve().add(dev_ls);  // oa 李四王五 马六
    pro_oa.getDeve().add(dev_ww);
    pro_oa.getDeve().add(dev_ml);



    session.save(pro_ds);
    session.save(pro_oa);



    session.beginTransaction().commit();
    session.close();

}

}

 package cn.itcast.F_Many2Many;

import java.util.HashSet;
import java.util.Set;

public class Project {

    private int p_id;
    private String p_name;

    //一个项目多个人员
    private Set<Developer> deve = new HashSet<Developer>();

    public int getP_id() {
        return p_id;
    }

    public void setP_id(int p_id) {
        this.p_id = p_id;
    }

    public String getP_name() {
        return p_name;
    }

    public void setP_name(String p_name) {
        this.p_name = p_name;
    }

    public Set<Developer> getDeve() {
        return deve;
    }

    public void setDeve(Set<Developer> deve) {
        this.deve = deve;
    }




}

package cn.itcast.F_Many2Many;

import java.util.HashSet;
import java.util.Set;

public class Developer {

private int  d_id;
private String d_name;

//一个人员属于多个项目
private Set<Project> pro = new HashSet<Project>();

public int getD_id() {
    return d_id;
}

public void setD_id(int d_id) {
    this.d_id = d_id;
}

public String getD_name() {
    return d_name;
}

public void setD_name(String d_name) {
    this.d_name = d_name;
}

public Set<Project> getPro() {
    return pro;
}

public void setPro(Set<Project> pro) {
    this.pro = pro;
}

}

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
     <class name="cn.itcast.F_Many2Many.Developer"  table="F_Developer">
         <id name="d_id">
            <generator class="native"/>
         </id>

         <property name="d_name" length="10"/>

         <set name="pro" table="F_Project" >
             <key column="p_id"></key>
             <one-to-many class="cn.itcast.F_Many2Many.Project" />
         </set>


     </class>
</hibernate-mapping>

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">





  <property name="p_name"></property>

  <set name="deve" table="F_Developer"  cascade="save-update,delete" inverse="true">
    <key column="p_id"></key>
    <one-to-many class="cn.itcast.F_Many2Many.Developer"/>
  </set>


  • 写回答

1条回答 默认 最新

  • threenewbee 2017-07-25 13:34
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题