src/com/itbaizhan/dao/BaseDao.java
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
package com.itbaizhan.dao;
import java.io.Serializable;
import javax.annotation.Resource;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
/**
* dao层基类
* 方便子类获取session对象, 及其他公用属性及方法
* 如果遇到异常HibernateException("No Sessionfound for current thread"), 是因为调用请求没有在spring事务中
* 此类中通过getCurrentSession得到的session对象被绑定在spring线程SpringSessionContext中而不是ThreadLocalSessionContext
* 因此必须要在spring事务中才能使用session对象, 此session在事务开启时自动创建, 事务结束后自动销毁
* 如果想使部分方法不开启事务, 除了使用openSession手动创建和销毁, 当前还没发现好的解决方案
*/
public class BaseDao {
@Resource
private SessionFactory sessionFactory;
private Session session;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Session getSession() {
this.session = sessionFactory.getCurrentSession();
return session;
}
public void setSession(Session session) {
this.session = session;
}
/**
* 主键查询
* @param clazz
* @param id
* @return 无记录返回null
*/
@SuppressWarnings("unchecked")
public <T> T get(Class<T> clazz, Serializable id){
return (T)getSession().get(clazz, id);
}
/**
* 添加
* @param object
* @return 返回主键
*/
public Integer save(Object object){
return (Integer) getSession().save(object);
}
后面还有 27 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。