hibernate的单向多对一(一)

2014-11-24 03:26:44 · 作者: · 浏览: 0

例:省市与城市之间的关系

Province.java

package www.csdn.net.blank.bean;

import java.io.Serializable;

public class Province  implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Integer id;
	private String name;

	public Province() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Province(Integer id, String name) {
		super();
		this.id = id;
		this.name = name;
	}

	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;
	}

}

City.java

package www.csdn.net.blank.bean;

import java.io.Serializable;

public class City implements Serializable{
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Integer id;
        private String  name;

        private Province province;
	public City() {
		super();
		// TODO Auto-generated constructor stub
	}
	public City(Integer id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	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 Province getProvince() {
		return province;
	}
	public void setProvince(Province province) {
		this.province = province;
	}
    
}

Provice的配置文件Provice.hbm.xml

  


  

	
    
     
      
      
     
     
   

  

City的配置文件City.hbm.xml

  


  

	
    
     
      
      
     
     
    

//Hibernate 使用 元素来映射多对一关联关系

many-to-one属性:

* name:设定待映射的持久化类的名字。

* column:设定和持久化类的属性对应的表的外键。

* class:设定持久化类的属性的类型。

* not-null:是否允许为空。


Hibernate封装BaseDao接口实现增删查改

package www.csdn.net.blank.dao;

import java.io.Serializable;
import java.util.List;


@SuppressWarnings("rawtypes")
public interface BaseDao {


	/**
	 * 保存实体对象
	 * 
	 * @param entity
	 */
	public void saveObject(Object entity);

	/**
	 * 更新实体对象
	 * 
	 * @param entity
	 */
	public void updateObject(Object entity);

	/**
	 * 删除实体对象
	 * 
	 * @param entity
	 */
	public void deleteObject(Object entity);

	/**
	 * 根据id删除实体对象
	 * 
	 * @param clazz
	 * @param id
	 */
	public void deleteObjectById(Class clazz,Serializable id);

	/**
	 * 根据id查询实体对象
	 * 
	 * @param clazz
	 * @param id
	 * @return
	 */
	public Object loadObjectById(Class clazz, Serializable id);

	/**
	 * 根据id查询实体对象
	 * 
	 * @param clazz
	 * @param id
	 * @return
	 */
	public Object getObjectById(Class clazz, Serializable id);

	/**
	 * 查询所有的操作
	 * 
	 * @param clazz
	 * @return
	 */
	public List getObjects(Class clazz);

}

实现BaseDao接口的类BaseDaoImpl

package www.csdn.net.blank.dao.impl;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import www.csdn.net.blank.dao.BaseDao;
import www.csdn.net.blank.util.BaseHibernateDaoImpl;

@SuppressWarnings("rawtypes")
public class BaseDaoImpl extends BaseHibernateDaoImpl implements BaseDao {

	@Override
	public void saveObject(Object entity) {

		// 获取session对象
		Session session = getSessionObject();
		// 打开事务
		Transaction ts = session.beginTransaction();
		try {
			// 保存
			session.save(entity);
			// 提交事务
			ts.commit();
		} catch (Exception e) {
			ts.rollback();
		}
	}

	@Override
	public void updateObject