请教一下关于对象组装的问题
我打算开发一个社区,打算用jdbc做,现在有个问题,就是在查询对象list的时候,怎么把这个list中的对象组装成完整的领域对象,查出的list只有id,
我现在的想法是在dao查出来的时候,然后去缓存中遍历,找到了就加载缓存的,没找到就调用dao查出单个对象
第二种就是dao查出的是个代理对象,不过目前感觉有点麻烦。
我看jf中好像是框架给自动完成的,但是我这项目估计不用jf,请bang老大指点指点
我打算开发一个社区,打算用jdbc做,现在有个问题,就是在查询对象list的时候,怎么把这个list中的对象组装成完整的领域对象,查出的list只有id,
我现在的想法是在dao查出来的时候,然后去缓存中遍历,找到了就加载缓存的,没找到就调用dao查出单个对象
第二种就是dao查出的是个代理对象,不过目前感觉有点麻烦。
我看jf中好像是框架给自动完成的,但是我这项目估计不用jf,请bang老大指点指点
JF也是这么做的,你可以参考JF源码,或者引用JF这部分代码都可以,Apache2.0开源比较宽松。
那要是这个对象比较复杂呢,在我印象中,一个复杂的领域对象需要用build创建的,dao只是查询出数据来,比如说有个 User 对象,他聚合了一个 userSstate,userSstate中有包含有 他回复过多少帖子,创建过多少帖子等信息,那这些仅仅通过dao查出user对象是做不到的啊
参考JiveJdon的Repository包下Build包下Builder模式构建方式。
那我在service层拿到一个空的list(只有id)后,然后遍历每个对象,再通过Builder把他们组装好吗,我现在疑惑的是,这个组装的操作是在哪个层做比较合适呢,还是用代理模式实现呢
JiveJdon的Builder是组装一个个单个的领域对象,属于repository层。
你需要集合结果的查询是这样步骤:
1.首先直接通过DAO获得符合条件的数据记录主键集合。
2.然后根据主键从缓存中获得单个领域模型对象,如果没有,则发出命令给repository,从数据库获得单个领域模型对象。
具体可参考JiveJdon源码就可以知道。
谢谢指教,晚上回去实践一下,哈哈