Hibernate中HashSet问题

06-02-10 monke82

我在做一个论坛的时候,持久化类中,帖子类Thead中有一个记录回帖Message类集合的Set,我想通过查询得到帖子类,然后通过thead得到message集合,然后找到集合中最后一条记录,我用的方法是通过next()方法,一直到最后一条,问题就来了,我得到的最后一条并不是数据库中真实的最后一条,原因可能是Hibernate中集合用的是HashSet,它有自己的散列函数,导致集合中个回帖的顺序和数据库中实际插入的顺序不同,我想请问各位,有什么方法解决这个问题吗?

banq
2006-02-10 12:07

我采取的办法是:

1.使用SQL直接查找

2.Cache这个Last Post结果。

你的问题实际是Collection问题,你可以使用compare按时间先后排序一下,不过,这挺折腾内存的,最好将这种折腾事情放在数据库端,然后使用精确缓存减少数据库服务器的折腾。

所以,数据库时代终结不是不用数据库,而是利用其长处,回避其端处,长处就是检索快速;短处就是不能频繁连接,每次TCP连接花费时间的。