请教banq及各位道友,关于创建主题帖里的一个疑问

08-06-27 rookie
    

在MessageKernel类中,创建主题帖的方法如下:
public void createTopicMessage(EventModel em) throws Exception{
logger.debug("enter createTopicMessage");
ForumMessage forumMessage = (ForumMessage)em.getModelIF();
messageRepository.createTopicMessage(em);
logger.debug("createTopicMessage ok!");

forumMessage = getMessage(forumMessage.getMessageId());
em.setModelIF(forumMessage);//forummessage refresh notice front layer
forumBuilder.loadForumState(forumMessage.getForum());//refresh this forum
}


我的疑问:既然forumMessage一开始是从ForumMessage forumMessage = (ForumMessage)em.getModelIF() 获取的,那么之后为什么还要再次forumMessage = getMessage(forumMessage.getMessageId())?难道前后获取的forumMessage有什么不一样?

请热心人赐教,谢谢了

[该贴被rookie于2008-06-27 17:20修改过]

    

rookie
2008-07-01 16:08

有谁能回答下么,谢谢了

pub
2008-07-01 17:15

/*
* return a full ForumMessage need solve the relations with Forum
* ForumThread parentMessage
*/
然后做了以下工作:
forumMessage.setForum(forum);
forumMessage.setForumThread(forumThread);
embedAccount(forumMessage);
forumMessage.setEmbedded(true);

oojdon
2008-07-03 18:15

既然forumMessage一开始是从ForumMessage forumMessage = (ForumMessage)em.getModelIF() 获取的,那么之后为什么还要再次forumMessage = getMessage(forumMessage.getMessageId())?

表单界面和DB数据库都是OO编程的过程性边界,过程性边界抓过来的对象是不完整的,要得到一个完整的生命对象必须要到仓储里面去拿。

pub
2008-07-03 20:30

顶。有道理