class BaseServiceImpl<T extends IdEntity, ID extends Serializable>
		implements BaseService<T, ID> {

	protected BaseDao<T, ID> baseDao;

	protected BaseDao<T, ID> getBaseDao() {<FILL_FUNCTION_BODY>}

	@Override
	public void save(T t) {
		String id = t.getId();
		if (id != null && "".equals(id)) {
			t.setId(null);
		}
		getBaseDao().save(t);
	}

	@Override
	public void delete(T t) {
		getBaseDao().delete(t);
	}

	public void delete(ID id) {
		getBaseDao().delete(get(id));
	};

	public T get(ID id) {
		return getBaseDao().get(id);
	}

	public T getModel(ID id) {
		return getBaseDao().getModel(id);
	};

	@Override
	public T findById(ID id) {
		return getBaseDao().findUniqueBy("id",id);
	}

	@Override
	public List<T> findList(Criterion... criterions) {
		return getBaseDao().find(criterions);
	}

	@Override
	public Page<T> findPage(Page<T> page, Criterion... criterions) {
		return getBaseDao().findPage(page, criterions);
	}

	public Page<T> findPageByCri(Page<T> page, List<Criterion> criterions) {
		return getBaseDao().findPageByCri(page, criterions);
	}

}

		if (baseDao == null) {
			setBaseDao();
		}
		return baseDao;
	
<no_super_class>