Я реализовал аналогичную функцию для своего веб-сайта, и я пришел к выводу, что лучше добавить класс домена деятельности, который регистрирует все виды действий.Допустим,
class Activity {
Date dateCreated
String linkClassName
Long linkId
def getLink() { getClass().classLoader.loadClass(linkClassName).get(linkId) }
}
Затем, когда вы вставляете новую запись в свои UserPost, FriendRequest и UserTask (или что-то еще), вы также создаете новую запись в Activity, используя afterInsert
события GORM следующим образом:
def afterInsert = {
new Activity(linkClassName: this.class.name, linkId: this.id).save()
}
После того, как вы это сделаете, вы можете получить информацию о своих недавних действиях, например:
def activities = Activity.list(max: 5, sort:'dateCreated', order:'desc')