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);
}
}
关于级联删除问题
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);
}
}
关于级联删除问题