數據庫結構:
用戶跟組織:多對對
用戶跟角色:多對多
組織:有上級組織
資源跟組織:多對多
資源跟角色:多對多
資源:有上級資源
資源:有資源類型
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中有對泛型的處理: