Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中hibernate中的复合键联接_Java_Hibernate - Fatal编程技术网

java中hibernate中的复合键联接

java中hibernate中的复合键联接,java,hibernate,Java,Hibernate,我使用hibernate来持久化两个表,Project和Department Department表具有复合主键DeptCompID 保存表的代码 每次我持久化项目表和部门表时,项目表中的DeptID列在应该为60时总是为null。 为什么@mapsideptid不起作用?有些可以提供解决方案 @Embeddable public class DeptCompID implements Serializable { @Column(name = "Dep

我使用hibernate来持久化两个表,Project和Department

Department表具有复合主键DeptCompID

保存表的代码

每次我持久化项目表和部门表时,项目表中的DeptID列在应该为60时总是为null。 为什么@mapsideptid不起作用?有些可以提供解决方案

    @Embeddable
    public class DeptCompID implements Serializable
    {

        @Column(name = "DeptID")
        private int DeptID;

        @Column(name = "RoleID")
        private int RoleID;

        //getters and setters
    }

@Entity
public class Department implements Serializable
{

    @EmbeddedId 
    private DeptCompID id;

     private String name;

    @OneToOne(mappedBy="department",targetEntity = Project.class)
    private Project pro;

    //getters and setters
}

@Entity
public class Project 

{
    @Id
    private int ProId;


    @OneToOne(targetEntity = Department.class)
    @MapsId("DeptID")
    @JoinColumns({    
    @JoinColumn(name = "RoleID", referencedColumnName = "RoleID"),
    @JoinColumn(name = "DeptID", referencedColumnName = "DeptID")
    })
     private Department department;

//getters and setters
}
            Department department = new Department();
            department.setName("HR");
            DeptCompID cpk=new DeptCompID();
            cpk.setRoleID(10);
            cpk.setDeptID(60);
            department.setId(cpk);

            Project pro=new Project();
            pro.setDepartment(department);
            pro.setProId(10);
            department.setPro(pro);
            session.save(department);
            session.save(pro);