如何使用hibernate更新子表中的外键值

如何使用hibernate更新子表中的外键值,hibernate,Hibernate,我有一个父表和子表,并且与它们有一对一的关系…所以当我向子表添加一些记录时,父表的pimary键值(假设这个表已经有一些记录)我想添加到我的子表中。。。我如何使用hibenate实现它。。任何帮助 这是我的父母--- 这是我的孩子班 package com.valto.workflow.bean; import java.io.Serializable; import javax.persistence.CascadeType; import javax.persistence.Column

我有一个父表和子表,并且与它们有一对一的关系…所以当我向子表添加一些记录时,父表的pimary键值(假设这个表已经有一些记录)我想添加到我的子表中。。。我如何使用hibenate实现它。。任何帮助

这是我的父母---

这是我的孩子班

package com.valto.workflow.bean;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name="tbl_workflow_process_details")
public class WorkFlowProcessDetails implements Serializable{
    private static final long serialVersionUID = -4355499783855489148L;
    @Id @GeneratedValue(strategy=GenerationType.AUTO)
    private int WFProcessId;

    @Column(name="WFProcessDate")
    private String WFProcessDate;

    @Column(name="ProcessComment")
    private String ProcessComment;

    @OneToOne
    @JoinColumn(name="WFPStatusId")
    private WorkFlowProcessStatus workflowprocessstatus;
    @OneToOne




    public int getWFProcessId() {
        return WFProcessId;
    }

    public void setWFProcessId(int wFProcessId) {
        WFProcessId = wFProcessId;
    }


    public String getWFProcessDate() {
        return WFProcessDate;
    }

    public void setWFProcessDate(String wFProcessDate) {
        WFProcessDate = wFProcessDate;
    }

    public String getProcessComment() {
        return ProcessComment;
    }

    public void setProcessComment(String processComment) {
        ProcessComment = processComment;
    }

    public WorkFlowProcessStatus getWorkflowprocessstatus() {
        return workflowprocessstatus;
    }

    public void setWorkflowprocessstatus(WorkFlowProcessStatus workflowprocessstatus) {
        this.workflowprocessstatus = workflowprocessstatus;
    }

}
这是我在chld类中保存记录的代码

public int saveWorkFlowProcessDetails(String wFProcessDate,

        String processComment) {
    Session sess=SessionFactoryCode.getSessionFactory().openSession();
    try
    {
            WorkFlowProcessDetails wfpd=new WorkFlowProcessDetails();//child class object
            wfpd.setWFProcessDate(wFProcessDate);
            wfpd.setProcessComment(processComment);
            sess.beginTransaction();
            sess.save(wfpd);
            WorkFlowProcessStatus wfps=new WorkFlowProcessStatus();//parent class object
            wfpd.setWorkflowprocessstatus(wfps);
            sess.update(wfpd);
            sess.getTransaction().commit();


            return 1;


    }
    catch(QueryException ex)
    {
        ex.getMessage();
        sess.getTransaction().rollback();
        sess.close();
        return 0;
    }


}

您应该级联
workflowprocessstatus
,以便在更新/保存
WorkFlowProcessDetails
时将其持久化

@Entity
@Table(name="tbl_workflow_process_details")
public class WorkFlowProcessDetails implements Serializable{
private static final long serialVersionUID = -4355499783855489148L;

...

@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="WFPStatusId")
private WorkFlowProcessStatus workflowprocessstatus;
@Entity
@Table(name="tbl_workflow_process_details")
public class WorkFlowProcessDetails implements Serializable{
private static final long serialVersionUID = -4355499783855489148L;

...

@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="WFPStatusId")
private WorkFlowProcessStatus workflowprocessstatus;