package com.xxx.dao;

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

import javax.annotation.Resource;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.google.common.base.Preconditions;

public class BaseDaoImpl<T extends Serializable> implements IBaseDao<T> {
	private Class<T> clazz;
	@Resource(name = "sessionFactory")
	private SessionFactory sessionFactory;

	protected final void setClazz(final Class<T> clazz) {
		this.clazz = clazz;
	}

	protected final Session getSession() {
		return sessionFactory.getCurrentSession();
	}

	public T findOne(long id) {
		return (T) getSession().get(clazz, id);
	}

	public List<T> findAll() {
		return getSession().createQuery("from " + clazz.getName()).list();
	}

	public void addOne(T entity) {
		Preconditions.checkNotNull(entity);
		getSession().saveOrUpdate(entity);
	}

	public void update(T entity) {
		Preconditions.checkNotNull(entity);
		getSession().update(entity);
	}

	public void deleteById(long entityId) {
		T t = findOne(entityId);
		Preconditions.checkNotNull(t);
		getSession().delete(t);
	}

}
最近下载更多
kpirateshe  LV1 2021年5月26日
912299793  LV21 2020年5月15日
Rrdiscover  LV4 2019年6月18日
随遇而安  LV6 2018年10月2日
279217639  LV1 2018年9月8日
petter007  LV10 2018年4月1日
test12312321  LV14 2018年2月1日
越努力越幸运的小宝  LV3 2017年3月15日
cccccccccccc  LV13 2016年9月3日
tiger081  LV11 2016年8月10日
最近浏览更多
星辰xc  LV2 2023年5月8日
kpirateshe  LV1 2021年5月26日
黑客即将来临 2021年1月26日
暂无贡献等级
MARTIN66666  LV1 2020年12月26日
dongzhan  LV12 2020年12月22日
wangtengfei 2020年6月25日
暂无贡献等级
fpxrng  LV9 2020年6月22日
jimmyke  LV2 2020年6月16日
hongren 2020年6月13日
暂无贡献等级
endual  LV11 2020年6月9日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友