首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

双向一对多增添时候未找到父项关键字

2014-01-08 
双向一对多添加时候未找到父项关键字下面是剪辑过的异常信息。12:27:20,964WARN JDBCExceptionReporter:100

双向一对多添加时候未找到父项关键字
下面是剪辑过的异常信息。
12:27:20,964  WARN JDBCExceptionReporter:100 - SQL Error: 2291, SQLState: 23000
12:27:20,964 ERROR JDBCExceptionReporter:101 - ORA-02291: 违反完整约束条件 (CUPLRP.FKB76D97015CC32C4F) - 未找到父项关键字

12:27:20,964  WARN JDBCExceptionReporter:100 - SQL Error: 2291, SQLState: 23000
12:27:20,964 ERROR JDBCExceptionReporter:101 - ORA-02291: 违反完整约束条件 (CUPLRP.FKB76D97015CC32C4F) - 未找到父项关键字

12:27:20,964 ERROR AbstractFlushingEventListener:324 - Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
Caused by: java.sql.BatchUpdateException: ORA-02291: 违反完整约束条件 (CUPLRP.FKB76D97015CC32C4F) - 未找到父项关键字


配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.xyurp.gygl.bean">
    <class name="DutyItem" table="t_apartment_dutyitem">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="sTime" type="string" length="30"/>
        <property name="eTime" type="string" length="30"/>
   <property name="watchman" type="string" length="30"/>
   <property name="repContent" type="string" length="30"/>
        <property name="advice" type="string" length="30"/>
        <property name="flag" type="java.lang.String" length="1"/>
        <many-to-one name="dutyRecord" column="dutyRecordId" ></many-to-one>
        
    </class>
</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.xyurp.gygl.bean">
    <class name="DutyRecord" table="t_apartment_dutyrecord">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="dutyDate" type="string" length="30"/>
        <property name="flag" type="java.lang.String" length="1"/>
        <set name="dutyItems" lazy="true" inverse="false" cascade="all">
        <key column="dutyRecordId" update="true"></key>
        <one-to-many class="DutyItem"/>
        </set>
        
    </class>
</hibernate-mapping>
添加时候就报错!
添加方法
public void add(DutyRecord o) throws ProjectException {
if(o != null)
this.commonDao.add((DutyRecord)o);
else
throw new ProjectException("您要添加的值班记录信息不存在");
}
实体类:
package cn.xyurp.gygl.bean;

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

/**
 * 值班记录
 * 
 * @author wangtao
 *
 */
public class DutyRecord {
private int id;
private String dutyDate; // 日期

private Set<DutyItem> dutyItems = new HashSet<DutyItem>(); 

    private String flag;
    
    public String getFlag() {
return flag;
}

public void setFlag(String flag) {
this.flag = flag;
}

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDutyDate() {
return dutyDate;
}
public void setDutyDate(String dutyDate) {
this.dutyDate = dutyDate;
}
public Set<DutyItem> getDutyItems() {
return dutyItems;
}
public void setDutyItems(Set<DutyItem> dutyItems) {


this.dutyItems = dutyItems;
}
}
package cn.xyurp.gygl.bean;

public class DutyItem {

private int id;
private String sTime;//  开始时间

private String eTime;//结束时间
private String watchman;//值班员

private String repContent;//值班记录(内容)
private String advice;//处理意见

private DutyRecord dutyRecord;

    private String flag;
    
    public String getFlag() {
return flag;
}

public void setFlag(String flag) {
this.flag = flag;
}

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getsTime() {
return sTime;
}
public void setsTime(String sTime) {
this.sTime = sTime;
}
public String geteTime() {
return eTime;
}
public void seteTime(String eTime) {
this.eTime = eTime;
}
public String getWatchman() {
return watchman;
}
public void setWatchman(String watchman) {
this.watchman = watchman;
}
public String getRepContent() {
return repContent;
}
public void setRepContent(String repContent) {
this.repContent = repContent;
}
public String getAdvice() {
return advice;
}
public void setAdvice(String advice) {
this.advice = advice;
}
public DutyRecord getDutyRecord() {
return dutyRecord;
}
public void setDutyRecord(DutyRecord dutyRecord) {
this.dutyRecord = dutyRecord;
}
}

[解决办法]
add是save还是saveOrUpdate实现的?

热点排行