一方:

package com.xdfstar.domain;

import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
* Title. <br>
* Description.
* <p>
* Copyright: Copyright (c) 2016年7月11日 下午4:21:49
* <p>
* 2016-3-21 Company: 北京新东方学校
* <p>
* Author: jinxudong@xdf.cn
* <p>
* Version: 1.0
* <p>
*/
public class AwardModel implements Serializable {

/** */
private static final long serialVersionUID = 1L;

private String uid;

private String image;

private String award_name;

private int number;

private int integral;

private int state;

private Set<DrawRecordModel> cjrecordsSet = new HashSet<DrawRecordModel>();

/** 提供人 */
private String provider;

/** 提供机构 */
private String organization;

/** 价值描述 只作为描述 不做运算 */
private String price;

/** 礼品入库时间 */
private Date create_time;

/** 礼品有效期 */
private Date end_time;

/** 活动id */
private ActivityModel activityModel;

private String remark;

/** 0:积分功能 1:抽奖功能 */
private int type;

public ActivityModel getActivityModel() {
return activityModel;
}

public void setActivityModel(ActivityModel activityModel) {
this.activityModel = activityModel;
}

public int getType() {
return type;
}

public void setType(int type) {
this.type = type;
}

public String getProvider() {
return provider;
}

public void setProvider(String provider) {
this.provider = provider;
}

public String getOrganization() {
return organization;
}

public void setOrganization(String organization) {
this.organization = organization;
}

public String getPrice() {
return price;
}

public void setPrice(String price) {
this.price = price;
}

public Date getCreate_time() {
return create_time;
}

public void setCreate_time(Date create_time) {
this.create_time = create_time;
}

public Date getEnd_time() {
return end_time;
}

public void setEnd_time(Date end_time) {
this.end_time = end_time;
}

public String getRemark() {
return remark;
}

public void setRemark(String remark) {
this.remark = remark;
}

public String getUid() {
return uid;
}

public Set<DrawRecordModel> getCjrecordsSet() {
return cjrecordsSet;
}

public void setCjrecordsSet(Set<DrawRecordModel> cjrecordsSet) {
this.cjrecordsSet = cjrecordsSet;
}

public void setUid(String uid) {
this.uid = uid;
}

public String getImage() {
return image;
}

public void setImage(String image) {
this.image = image;
}

public String getAward_name() {
return award_name;
}

public void setAward_name(String award_name) {
this.award_name = award_name;
}

public int getNumber() {
return number;
}

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

public int getIntegral() {
return integral;
}

public void setIntegral(int integral) {
this.integral = integral;
}

public int getState() {
return state;
}

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

}

<?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>
<class name="com.xdfstar.domain.AwardModel" table="t_award">
<id name="uid" column="uid" type="string">
<generator class="assigned" />
</id>
<property name="image" column="image" type="string" />
<property name="award_name" column="award_name" type="string" />
<property name="number" column="number" type="integer" />
<property name="integral" column="integral" type="integer" />
<property name="state" column="state" type="integer" />
<set name="cjrecordsSet" cascade="save-update,delete" inverse="true">
<key column="aid"></key>
<one-to-many class="com.xdfstar.domain.DrawRecordModel" />
</set>
<property name="provider" column="provider" type="string" />
<property name="organization" column="organization" type="string" />
<property name="price" column="price" type="string" />
<property name="create_time" column="create_time" type="date" />
<property name="end_time" column="end_time" type="date" />
<many-to-one name="activityModel" class="com.xdfstar.domain.ActivityModel"
column="act_id"></many-to-one>
<property name="remark" column="remark" type="string" />
<property name="type" column="type" type="integer" />
</class>
</hibernate-mapping>

多方:

public class DrawRecordModel {

private String uid;

// 抽奖人id
private String eid;

private String ename;

public String getEname() {
return ename;
}

public void setEname(String ename) {
this.ename = ename;
}

/** 抽奖时间 */
private Date cj_time;

private AwardModel awardModel;

public AwardModel getAwardModel() {
return awardModel;
}

public void setAwardModel(AwardModel awardModel) {
this.awardModel = awardModel;
}

public String getUid() {
return uid;
}

public void setUid(String uid) {
this.uid = uid;
}

public String getEid() {
return eid;
}

public void setEid(String eid) {
this.eid = eid;
}

public Date getCj_time() {
return cj_time;
}

public void setCj_time(Date cj_time) {
this.cj_time = cj_time;
}

}

<?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>
<class name="com.xdfstar.domain.DrawRecordModel" table="t_draw_record">
<id name="uid" column="uid" type="string">
<generator class="assigned" />
</id>
<property name="eid" column="eid"></property>
<property name="cj_time" column="cj_time" type="date" />
<many-to-one name="awardModel" class="com.xdfstar.domain.AwardModel"
column="aid"></many-to-one>
</class>
</hibernate-mapping>

配置正确 删除修改级联不起作用分析:

删除直接用delete(object)删除

该object包含了所删数据的id,但是其他字段为空,外键关联不上,当前数据记录正常删除,级联失效

正确的逻辑应该是查出这个object  他有完整的数据 再进行delete ,update同样如此,问题完美解决。

正确写法:

@Override
public int deleteAwardModel(AwardModel awardModel) {
// TODO Auto-generated method stub
awardModel=(AwardModel) hibernateTemplate.getSessionFactory().getCurrentSession().get(AwardModel.class, awardModel.getUid());
hibernateTemplate.delete(awardModel);
return 1;
}

错误写法:

@Override
public int deleteAwardModel(AwardModel awardModel) {
// TODO Auto-generated method stub
hibernateTemplate.delete(awardModel);
return 1;
}

Hibernate 一对多配置 级联操作(级联失败问题分析解决)的更多相关文章

  1. Hibernate一对多配置

    刚刚学习了Hibernate框架的基础知识,下面我来说说关于Hibernate一对多的配置 首先是大配置 连接数据库 用户名 和密码 能和小配置连接 部门小配置: 员工小配置: 部门实体类 员工实体类 ...

  2. SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法

    操作步骤: 1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击"开始"."运行",然后在"打开&quo ...

  3. RP4412开发板烧写Ubuntu12.04失败原因分析解决

    Ubuntu烧写失败可能是卡的问题 问:用RP4412开发板,卡烧了光盘中的fastboot失败,现在如何补救呢? 答:INAND格式化,利用usb来升级啊. 也有文档,看升级文档. 问:这个是怎么回 ...

  4. Hibernate第三天——表间关系与级联操作

    第三天,我们来使用Hibernate进行表之间一对多 多对多关系的操作: 这里我们先利用两个例子进行表关系的回顾: 一对多(重点): 例如分类和商品的关系,一个分类多个商品,一个商品属于一个分类 CR ...

  5. Hibernate框架笔记03表操作多对多配置

    目录 1. 数据库表与表之间的关系 1.1 一对多关系 1.2 多对多关系 1.3 一对一关系[了解] 2. Hibernate的一对多关联映射 2.1 创建一个项目,引入相关jar包 2.2. 创建 ...

  6. Hibernate 一对多

    表与表之间关系回顾(重点) 1 一对多 (1)分类和商品关系,一个分类里面有多个商品,一个商品只能属于一个分类 (2)客户和联系人是一对多关系 - 客户:与公司有业务往来,百度.新浪.360 - 联系 ...

  7. hibernate 一对多操作(级联操作)

    一对多级联操作 1.  级联保存 复杂写法 Company company = new Company(); company.setcName("Hello"); company. ...

  8. Hibernate一对多关联映射的配置及其级联删除问题

    首先举一个简单的一对多双向关联的配置: 一的一端:QuestionType类 package com.exam.entity; import java.util.Set; public class Q ...

  9. [原创]关于Hibernate中的级联操作以及懒加载

    Hibernate: 级联操作 一.简单的介绍 cascade和inverse (Employee – Department) Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似 ...

随机推荐

  1. 大白话vue——slot的作用与使用

    这篇内容本来是不打算放在首页上的,因为内容实在是比较简单,但是在查找slot的使用讲解时发现相关的讲解比较少,要么像官方文档一样简单讲解(看过任然一脸懵逼),也许是自己理解能力比较差...所以在此讲述 ...

  2. 在linux中 部署 mongo 数据库服务端

    1 首先需要一台linux服务器(我用的redhat linux,其它的也大同小异), 玩一玩的话,推荐亚马逊上面去创建一个免费的linux服务器,有关具体创建linux服务器不在这赘述. https ...

  3. ward's method分层聚类凝聚法

    ward's method是分层聚类凝聚法的一种常见的度量cluster之间距离的方法,其基本过程是这样的(参考:http://blog.sciencenet.cn/blog-2827057-9217 ...

  4. windown 使用python 自动切换网络

    由于工作环境的特殊性,有时需要切换到内网工作,有时需要通过手机连接外网,想自动运行一个脚本就做完这事 首先在PC机上安装一个无线网卡,例如360wifi就可以. 除了python,还用到了DOS命令, ...

  5. vue2.0 之 douban (六)axios的简单使用

    由于项目中用到了豆瓣api,涉及到跨域访问,就需要在config的index.js添加代理,例如 proxyTable: { // 设置代理,解决跨域问题 '/api': { target: 'htt ...

  6. Note:目录1

    ylbtech-Note:目录1 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbtech ...

  7. docker 搭建gitlab

    https://docs.gitlab.com/omnibus/docker/ https://blog.csdn.net/m0_37444820/article/details/81147452 h ...

  8. jmeter之登录接口的一次简单压测与分析

    前言:登录接口的一次简单压测与分析 1.接口文档 2.配置元件 3.结果分析 1.接口文档 a.拿到接口文档 接口地址:http://localhost:8080/jpress/admin/login ...

  9. Python笔记(十二)_文件

    文件的打开模式 'r':以只读的方式打开文件(默认) 'w':以写入的方式打开文件,会覆盖已存在的文件 'x':用写入的方式打开文件,如果文件已存在,会抛出异常 'a':用写入的方式打开文件,如果文件 ...

  10. 图解Http阅读笔记(二)

    简单的HTTP协议 HTTP是一种不保存状态,即无状态(stateless)协议.HTTP 协议自身不对请求和响应之间的通信状态进行保存.也就是说在 HTTP 这个级别,协议对于发送过的请求或响应都不 ...