基于hibernate的通用、”万能“Dao的设计(四)
万能Dao,应该说绝大多数情况下,它就能提供足够多的操作数据库的功能。
@Repositorypublic class UniversalDao extends BaseDao { /** * * @param o 保存实体对象 * @return 主键 */ public Serializable save(Object o) { return this.getSession().save(o); } /** * 新增或者更新 * * @param o */ public void saveOrUpdate(Object o) { this.getSession().saveOrUpdate(o); } /** * 更新 * * @param o */ public void update(Object o) { this.getSession().update(o); } /** * 更新 * * @param o */ public void delete(Object o) { this.getSession().delete(o); } /** * 查询对象,利用上缓存,实际上调用load * * @param clazz * @param id * @return */ public Object get(Class<?> clazz, Serializable id) { return this.getSession().get(clazz,id); } /** * 加载对象 * * @param clazz * @param id * @return */ public Object load(Class<?> clazz, Serializable id) { return this.getSession().load(clazz,id); } /** * 返回所以对象实例 * * @param clazz * @return */ public List<?> getAll(Class<?> clazz) { return this.getBaseCriteria(clazz).list(); } /** * 删除 * * @param clazz * @param id */ public void delete(Class<?> clazz, Serializable id) { this.getSession().delete(this.get(clazz, id)); } /** * 逐个删除,保证缓存与数据库的统一 * * @param ids 主键值, * @return */ public int deleteAll(Class<?> clazz, Serializable... ids) { for (Serializable id : ids) { delete(clazz, id); } return ids.length; } }