求助:DetachedCriteria关联查询问题~~

Spring+Hibernate3的框架中用到了关联查询,可无论如何调试结果与想象的不同,请各位高人帮忙看看,万分感谢!!
表User:Address是一对多的关系
UserBean中有一个addresses的Set

现在要查询出这样的User,拥有Address中门牌doorplate为"642"的User,
现在DB中只有一个这样的User,这个User拥有门牌doorplate为"642"的Address五个~~

创建DetachedCriteria 的语句如下:


DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class);
detachedCriteria.createCriteria("addresses").add(Restrictions.like("doorplate","642"));

实际查询语句如下:


List list = getHibernateTemplate().findByCriteria(queryCriteria);

理论上查询出来的list应该User的list是1,可现在查询出的是5个,请教哪位高人指点我这样写为什么查询不出来?

>这个User拥有门牌doorplate为"642"的Address五个
>可现在查询出的是5个
不懂你的意思,是5个啊

不好意思,是我说的不清楚,
>


> List list =
> getHibernateTemplate().findByCriteria(queryCriteria);
>

这里查询处的list查出来的userList,理论上userList中应该只有一个userBean,在此userBean中的addresses的Set有5个,
可现在是userList中有5个userBean,每个userBean中有5个相同的addresses的Set,不知道为什么会有这种原因,
请大侠指点~~~

请banq大侠帮忙,郁闷了我一个多星期了,在网上找的例子也都是这样的,不知道这种情况原因可能在什么地方~~

关键看你findByCriteria怎么实现的。

btw:其实Hibernate并不是和Spring完美无缝结合的,因为他们两个作者方向就不一样,Hibernate作者是为EJB服务器JBoss服务的,Hibernate是EJB3的实现机制.....,而Spring和EJB3是相竞争的,而且争得很厉害。

如果要查记录数的话最好还是用getCountByDetachedCriteria
findByCriteria查询出来的结果条数是数据库的纪律数,返回的userLIST里面的所有的引用都指向一个user实体的