关于确定jivejdon3的一点问题

08-05-07 jjyy4
    

为什么你的DAO,也可以创建领域模型呢。

比如

public interface AccountDao {

/**

* this for login

* @param username

* @param password

* @return Account or null

*/

Account getAccount(String username, String password);

/**

* this for service, not open

* @param userId

* @return account

*/

Account getAccount(String userId);

Account getAccountByName(String username);

Account getAccountByEmail(String email);

void createAccount(Account account) throws Exception;

void updateAccount(Account account) throws Exception;

void deleteAccount(Account account) throws Exception;

PageIterator getAccounts(int start, int count);

}

在这里,Account不是领域模型吗,不是应该由Repository来创建嘛?

如果用Hibernate,一般DAO就返回POJO,在由Repository来返回domin model嘛?

看了JIVEJDON的代码,我又觉的hibernate有点多余。那我们用hibernate来完成什么职责呢?

我们现在用的时候,只是讲数据局库字段,映射为一个对应的POJO,请BANG给我解释一下,谢谢

    

oojdon
2008-05-07 15:30

愚见:从hibernate这些持久层包括DAO取出来的数据都是死数据,对象冬眠,冬眠了一个对象需要持久的那一部分,而要把这个冬眠对象唤醒我们需要repository或者工厂,一旦唤醒一个对象它就有可能经历各种生命状态,这些生命对象需要repository来管理或者构造,这个活生生的对象只存在于仓储中,应用只需要和仓储打交到即可,仓储面向上层应用,屏蔽掉底层持久技术比如hibernate或者jdbc模板!

jjyy4
2008-05-07 15:40

为什么,Dao要返回 domin对象呢