Spring中HibernateTemplate的级联删除

User.java
ackage com.dding;

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

public class User {
    private Integer id;
    private String name;
    private String password;
    private Set addresses=new HashSet();
    public Set getAddresses() {
        return addresses;
    }
    public void setAddresses(Set addresses) {
        this.addresses = addresses;
    }
    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 getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Set getAddress() {
        return addresses;
    }
    public void setAddress(Set addresses) {
        this.addresses = addresses;
    }
    public void addAddress(Address address){       
        this.addresses.add(address);
    }
}

Address.java
package com.dding;

import java.sql.Date;

public class Address {
   
    private String discription;
    private Integer addressId;
    private User user;
    public Integer getAddressId() {
        return addressId;
    }
    public void setAddressId(Integer addressId) {
        this.addressId = addressId;
    }
    public String getDiscription() {
        return discription;
    }
    public void setDiscription(String discription) {
        this.discription = discription;
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }

user.hbm.xml
<hibernate-mapping>
    <class name="com.dding.User" table="USER" >
        <id name="id" type="java.lang.Integer">
            <column name="USER_ID" />
            <generator class="increment" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="USERNAME" length="50" not-null="true" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="PASSWORD" precision="12" scale="0" not-null="true" />
        </property> 
        <set name="addresses" table="ADDRESS"           
            cascade="all-delete-orphan">
            <key column="USER_ID"></key>
        <one-to-many class="com.dding.Address"/>
       
        </set>
   </class>
</hibernate-mapping>


address.hbm.xml

<hibernate-mapping>
    <class name="com.dding.Address" table="ADDRESS" >
        <id name="addressId" type="java.lang.Integer">
            <column name="ADDRESS_ID" />
            <generator class="increment" />
        </id>
        <property name="discription" type="java.lang.String">
            <column name="DISCRIPTION" length="50" not-null="true" />
        </property>
        <many-to-one name="user"        
            column="USER_ID"
            cascade="all-delete-orphan"
            class="com.dding.User"
            ></many-to-one>
   </class>
</hibernate-mapping>
UserDao.java
package com.dding.dao;

import org.hibernate.SessionFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.dding.User;

public class UserDao extends HibernateDaoSupport{

   
    public void addUser(User user){
       
        getHibernateTemplate().save(user);
       
    }
    public void deleteUser(User user,final Integer userId){
        getHibernateTemplate().load(User.class, userId);
        getHibernateTemplate().delete(user);

    }

}


关于级联删除问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值