java 存储多个信息_java-通用或特定的DAO记录带有多个表的信息...

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

@Component("Dao")

public class Dao implements IDao {

@Resource(name = "sessionFactory")

private SessionFactory sessionFactory;

@Override

public 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 get(final Class type, final Long id) {

return (T) sessionFactory.getCurrentSession().get(type, id);

}

@Override

public List getFieldsEq(final Class type, final Map restrictions) {

final Session session = sessionFactory.getCurrentSession();

final Criteria crit = session.createCriteria(type);

for (Map.Entry entry : restrictions.entrySet()) {

crit.add(Restrictions.eq(entry.getKey(), entry.getValue()));

}

return crit.list();

}

}

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

@Transactional(readOnly = true)

public List getCities() {

return dao.getAll(City.class);

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值