最近在使用 Spring 2.0 和 Hibernate 3.2.0 进行开发,在对 DAO 进行单元测试的时候,出现了一些问题,因为对新环境不太熟悉,折腾了很久才把问题略为妥善的解决。
程序员喜欢用代码说话,所以先将测试的相关代码展示如下:
public class FilterSetDaoTest extends TestCase {
private FilterSetDao filterSetDao;
public void testCreateFilterSet() {
FilterSet filterSet = new FilterSet();
filterSet.setName("test10");
filterSet.setCreateTime(new Date());
Set<Filter> filters = new HashSet<Filter>();
Filter filter = new Filter();
filter.setRule("testrule10");
filter.setType(FilterType.PLAIN);
filter.setCreateTime(new Date());
filters.add(filter);
filterSet.setFilters(filters);
filterSet.setUpdateTime(new Date());
filterSetDao.saveOrUpdate(filterSet);
FilterSet persistedFilterSet = filterSetDao.find(filterSet.getId());
assertEquals(filterSet, persistedFilterSet);
assertEquals(1, persistedFilterSet.getFilters().size());
}
}
public interface FilterSetDao {
public FilterSet find(int id);
}
public class FilterSetDaoHibernateImpl extends HibernateDaoSupport implements FilterSetDao {
public FilterSet find(int id) {
return (FilterSet) getHibernateTemplate().load(FilterSet.class, id);
}
}
@Entity
@Table(name = "filterset")
public class FilterSet implements Serializable {
private Set<Filter> filters;
@ManyToMany(cascade = CascadeType.ALL

