在我之前的 Grails 项目(高交易量)中,我对具有 1 对多和多对多关系的 Stale Object Exceptions 有过可怕的经历。
我基本上保留了 Facebook 朋友的个人资料(学校、雇主的整个个人资料),而且大多数时候我一起保存了 1000 个用户个人资料。我通过从 School 和 Employer 域类中删除版本号解决了大部分问题,因为该数据大部分是固定的,并且无需为每次保存经验或教育而增加版本。由于时间紧迫,我不得不让事情顺利进行,并且我从整个用户对象层次结构中删除了版本号,因为我仍然习惯于获得一些过时的对象异常。
那么,当不在域类中使用版本时,我仍然一无所知?