首页 > 学院 > 开发设计 > 正文

sshe源码分析——权限管理的后台部分

2019-11-14 23:38:24
字体:
来源:转载
供稿:网友
sshe源码分析——权限管理的后台部分

数据库结构:

wpsEACA.tmp

用户跟组织:多对对

用户跟角色:多对多

组织:有上级组织

wpsEACB.tmp

资源跟组织:多对多

资源跟角色:多对多

资源:有上级资源

资源:有资源类型

BaseDaoImpl中用了Hibernate原生的session

@Repository

publicclass BaseDaoImpl<T> implements BaseDaoI<T> {

@Autowired

PRivate SessionFactory sessionFactory;

/**

* 获得当前事物的session

*

* @return org.hibernate.Session

*/

public Session getCurrentSession() {

returnsessionFactory.getCurrentSession();

}

@Override

public T getByHql(String hql) {

Query q = getCurrentSession().createQuery(hql);

List<T> l = q.list();

if (l != null && l.size() > 0) {

return l.get(0);

}

returnnull;

}

@Override

public T getByHql(String hql, Map<String, Object> params) {

Query q = getCurrentSession().createQuery(hql);

if (params != null && !params.isEmpty()) {

for (String key : params.keySet()) {

q.setParameter(key, params.get(key));

}

}

List<T> l = q.list();

if (l != null && l.size() > 0) {

return l.get(0);

}

returnnull;

}

@Override

public Long count(String hql) {

Query q = getCurrentSession().createQuery(hql);

return (Long) q.uniqueResult();

}

@Override

public List<Map> findBySql(String sql) {

SQLQuery q = getCurrentSession().createSQLQuery(sql);

returnq.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();

}

BaseServiceImpl中有对泛型的处理:

@Service

publicclass BaseServiceImpl<T> implements BaseServiceI<T> {

@Autowired

private BaseDaoI<T> baseDao;

@Override

public T getById(Serializable id) {

Class<T> c = (Class<T>) ((ParameterizedType) getClass()

.getGenericSuperclass()).getActualTypeArguments()[0];

returnbaseDao.getById(c, id);

}

@Override

public T getByFilter(HqlFilter hqlFilter) {

String className = ((Class<T>) ((ParameterizedType) getClass()

.getGenericSuperclass()).getActualTypeArguments()[0]).getName()

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表