通用DAO或特定DAO记录带有多个表的信息的传递?

通用DAO或特定DAO记录带有多个表的信息的传递?,第1张

通用DAO或特定DAO记录带有多个表的信息的传递?

这是我的通用dao的片段,我将其插入到每个服务层类中。

@Component("Dao")public class Dao implements IDao  {    @Resource(name = "sessionFactory")    private SessionFactory sessionFactory;    @Override    public <T> T save(final T o){        return (T) sessionFactory.getCurrentSession().save(o);    }    @Override    public void delete(final Object object) {        sessionFactory.getCurrentSession().delete(object);    }    @Override    public <T> T get(final Class<T> type, final Long id) {        return (T) sessionFactory.getCurrentSession().get(type, id);    }    @Override    public <T> List<T> getFieldsEq(final Class<T> type, final Map<String, Object> restrictions) {        final Session session = sessionFactory.getCurrentSession();        final Criteria crit = session.createCriteria(type);        for (Map.Entry<String, Object> entry : restrictions.entrySet()) { crit.add(Restrictions.eq(entry.getKey(), entry.getValue()));        }        return crit.list();    }}

可以在服务层中使用哪种方法,如下所示:

@Transactional(readonly = true)public List<City> getCities() {  return dao.getAll(City.class);}

当然,您可以将dao扩展为特定的复杂查询。有一个通用的DAO服从 的责任原则单点DRY
,并使其更容易测试。事务应在服务层上,并直接与工作单元有关。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5169228.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-18
下一篇2022-11-18

发表评论

登录后才能评论

评论列表(0条)

    保存