hibernate一对多的删除问题(郁闷)

one :






many:

    <many-to-one name="schedule" class="com.oa.beans.Schedule"  fetch="select" update="false" cascade="all">
        <column name="SCHEDULE_ID" precision="8" scale="0" not-null="true" />
    </many-to-one>

Schedule.java:

public class Schedule implements java.io.Serializable {

// Fields

private Long scheduleId;
private Meetinginfo meetinginfo;
private String title;
private String address;
private Date begintime;
private Date endtime;
private String schcontent;
private Userinfo userinfo;
private Date createtime;
private Long ifprivate;
private Set precontracts = new HashSet(0);
// Constructors

// Property accessors

public Long getScheduleId() {
    return this.scheduleId;
}

public void setScheduleId(Long scheduleId) {
    this.scheduleId = scheduleId;
}

public Meetinginfo getMeetinginfo() {
    return this.meetinginfo;
}

public void setMeetinginfo(Meetinginfo meetinginfo) {
    this.meetinginfo = meetinginfo;
}

public String getTitle() {
    return this.title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getAddress() {
    return this.address;
}

public void setAddress(String address) {
    this.address = address;
}

public Date getBegintime() {
    return this.begintime;
}

public void setBegintime(Date begintime) {
    this.begintime = begintime;
}

public Date getEndtime() {
    return this.endtime;
}

public void setEndtime(Date endtime) {
    this.endtime = endtime;
}

public String getSchcontent() {
    return this.schcontent;
}

public void setSchcontent(String schcontent) {
    this.schcontent = schcontent;
}

public Date getCreatetime() {
    return this.createtime;
}

public void setCreatetime(Date createtime) {
    this.createtime = createtime;
}

public Long getIfprivate() {
    return this.ifprivate;
}

public void setIfprivate(Long ifprivate) {
    this.ifprivate = ifprivate;
}

public Set getPrecontracts() {
    return this.precontracts;
}

public void setPrecontracts(Set precontracts) {
    this.precontracts = precontracts;
}

public Userinfo getUserinfo() {
    return userinfo;
}

public void setUserinfo(Userinfo userinfo) {
    this.userinfo = userinfo;
}

}

Precontract.java:

public class Precontract implements java.io.Serializable {

// Fields

private Long precontractId;
private Userinfo userinfo;
private Schedule schedule;

// Constructors

/** default constructor */
public Precontract() {
}

/** full constructor */
public Precontract(Userinfo userinfo, Schedule schedule) {
    this.userinfo = userinfo;
    this.schedule = schedule;
}

// Property accessors

public Long getPrecontractId() {
    return this.precontractId;
}

public void setPrecontractId(Long precontractId) {
    this.precontractId = precontractId;
}

public Userinfo getUserinfo() {
    return this.userinfo;
}

public void setUserinfo(Userinfo userinfo) {
    this.userinfo = userinfo;
}

public Schedule getSchedule() {
    return this.schedule;
}

public void setSchedule(Schedule schedule) {
    this.schedule = schedule;
}

}

异常:
org.springframework.jdbc.UncategorizedSQLException: Hibernate flushing: Could not execute JDBC batch update; uncategorized SQLException for SQL [update OA.PRECONTRACT set SCHEDULE_ID=null where SCHEDULE_ID=?]; SQL state [72000]; error code [1407]; ORA-01407: 无法更新 ("OA"."PRECONTRACT"."SCHEDULE_ID") 为 NULL
; nested exception is java.sql.BatchUpdateException: ORA-01407: 无法更新 ("OA"."PRECONTRACT"."SCHEDULE_ID") 为 NULL

你的调用代码怎么不粘出来,
还有你的映射文件写得很有问题啊

one :






many:

    <many-to-one name="schedule" class="com.oa.beans.Schedule"  [color=red]fetch="join"[/color][color=red] update="true"[/color] cascade="all">
        <column name="SCHEDULE_ID" precision="8" scale="0" not-null="true" />
    </many-to-one>