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/天,具体规则查看活动详情