SpringBoot获得hibernate的session
我的业务需求是需要执行自定义sql,由于springboot对hibernate封装了
所以我们可以通过如下方法获得session
我们只需要注入EntityManager即可
如下代码片段
@Transactional
public abstract class BaseServiceImpl<T extends BaseEntity, ID extends Serializable> implements IBaseService<T, ID> {
public abstract IBaseDao<T, ID> getBaseDao();
@PersistenceContext
private EntityManager entityManager;然后按照如下方法使用
/**
*
* @Title: createTable
* @Description: TODO(创建表)
* @param @param sql 设定文件
* @return void 返回类型
* @throws
*/
public void createTable(String sql) {
((HibernateEntityManager)entityManager)
.getSession()
.createSQLQuery(sql)
.executeUpdate();
}
/**
*
* @Title: selectTable
* @Description: TODO(查询数据)
* @param @param sql
* @param @return 设定文件
* @return List<SysBasedClock> 返回类型
* @throws
*/
public List<SysBasedClock> selectTable(String sql) {
List<SysBasedClock> list = ((HibernateEntityManager)entityManager)
.getSession()
.createSQLQuery(sql).addEntity(SysBasedClock.class)
.list();
return list;
}爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情