现在的位置: 首页 > 综合 > 正文

No row with the given identifier exists

2014年07月15日 ⁄ 综合 ⁄ 共 4652字 ⁄ 字号 评论关闭

出现这种出错的原因是两张表有关联,就像是一个会员对应有一个会员卡一样,如果你把一张表中的数据删除了话,就破坏了这种对应关系,下面的例子是把会员的ID指向了会员卡的ID;

rg.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.meeMei.domain.Vip#3]

public class Vip implements Serializable{
private Integer id; // ID
private String name; // 会员名
private String contact; // 联系方式
private VipCard vipCard; // 会员卡

public Integer getId() {
   return id;
}

public void setId(Integer id) {
   this.id = id;
}

public String getName() {
   return name;
}

public void setName(String name) {
   this.name = name;
}

public String getContact() {
   return contact;
}

public void setContact(String contact) {
   this.contact = contact;
}

public VipCard getVipCard() {
   return vipCard;
}

public void setVipCard(VipCard vipCard) {
   this.vipCard = vipCard;
}

}

public class VipCard implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;// ID
private String number; // 会员卡号
private String password; // 密码
private Float balance; // 余额
private Integer totalScore; // 积分
private Timestamp startDate; // 启用时间
private Float totalSupplement; // 累计充值
private String state; // 状态
private String info; // 备注
private Vip vip; //会员

/** minimal constructor */
public VipCard() {
   Timestamp timestamp=new Timestamp(System.currentTimeMillis());
   this.password = "000000";
   this.balance =0f;
   this.totalSupplement=0f;
   this.totalScore=0;
   this.startDate=timestamp;
   this.state = "启用";
}

public Vip getVip() {
   return vip;
}

public void setVip(Vip vip) {
   this.vip = vip;
}

public Integer getId() {
   return id;
}

public void setId(Integer id) {
   this.id = id;
}

public String getNumber() {
   return number;
}

public void setNumber(String number) {
   this.number = number;
}

public String getPassword() {
   return password;
}

public void setPassword(String password) {
   this.password = password;
}

public Float getBalance() {
   return balance;
}

public void setBalance(Float balance) {
   this.balance = balance;
}

public Integer getTotalScore() {
   return totalScore;
}

public void setTotalScore(Integer totalScore) {
   this.totalScore = totalScore;
}

public Timestamp getStartDate() {
   return startDate;
}

public void setStartDate(Timestamp startDate) {
   this.startDate = startDate;
}

public Float getTotalSupplement() {
   return totalSupplement;
}

public void setTotalSupplement(Float totalSupplement) {
   this.totalSupplement = totalSupplement;
}

public String getState() {
   return state;
}

public void setState(String state) {
   this.state = state;
}

public String getInfo() {
   return info;
}

public void setInfo(String info) {
   this.info = info;
}

}

<?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">
<!--
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping package="com.meeMei.domain">
    <class name="Vip" table="t_vip" catalog="meemeiclient" lazy="false">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator <param name="property">vipCard</param>
            </generator>
        </id>
         <property name="name" type="java.lang.String">
            <column name="name" length="12"/>
        </property>
        <property name="contact" type="java.lang.String">
            <column name="contact" length="15" />
        </property>
        <one-to-one name="vipCard" constrained="true" cascade="none"/>
    </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">
<!--
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping package="com.meeMei.domain">
    <class name="VipCard" table="t_vip_card" catalog="meemeiclient" lazy="false">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator />
        </id>
         <property name="number" type="java.lang.String" not-null="true">
            <column name="vip_card_number" length="18" />
        </property>
        <property name="password" type="java.lang.String" not-null="true">
            <column name="password" length="20" />
        </property>
        <property name="balance" type="java.lang.Float" not-null="true">
            <column name="balance"   />
        </property>
        <property name="totalScore" type="java.lang.Integer">
            <column name="total_score" />
        </property>
        <property name="startDate" type="java.sql.Timestamp">
            <column name="start_date" />
        </property>
        <property name="totalSupplement" type="java.lang.Float">
            <column name="total_supplement"   />
        </property>
        <property name="state" type="java.lang.String" not-null="true">
            <column name="state" length="10" />
        </property>
        <property name="info" type="java.lang.String">
            <column name="info" length="200" />
        </property>
        <one-to-one name="vip" constrained="true" cascade="none"/>
    </class>
</hibernate-mapping>

抱歉!评论已关闭.