第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

DAO調(diào)用DAO,DAO調(diào)用服務(wù)還是SQL join?

DAO調(diào)用DAO,DAO調(diào)用服務(wù)還是SQL join?

呼啦一陣風(fēng) 2022-07-27 20:18:43
所以我正在寫(xiě)一個(gè)個(gè)人項(xiàng)目來(lái)學(xué)習(xí)網(wǎng)絡(luò)編程,我遇到了 DAO 模式。我已經(jīng)構(gòu)建了一些類(lèi)(模型),并且像幾乎所有程序一樣,它們是嵌套的(例如:Payment 類(lèi)具有對(duì) Author 實(shí)例的引用)。僅供參考,我沒(méi)有使用任何映射器(將在以后的迭代中添加它們,我使用的是 JDBC,而不是 JPA)。我的問(wèn)題是這樣的:當(dāng)我創(chuàng)建 PaymentJdbcDao 時(shí),我有一個(gè)方法會(huì)返回一些付款,但是為了從數(shù)據(jù)庫(kù)存儲(chǔ)的對(duì)象創(chuàng)建這個(gè)付款,我還必須到達(dá)作者(存儲(chǔ)在單獨(dú)的表中)。我是否應(yīng)該從 PaymentJdbcDao 調(diào)用 UserJdbcDao 以獲取付款的作者,我是否應(yīng)該使用聯(lián)接更改查詢(xún)以從兩個(gè)實(shí)體中檢索字段,如果 PaymentJdbcDao 調(diào)用 UserService(我認(rèn)為這不好,因?yàn)榉?wù)已開(kāi)啟daos 之上的層),還是應(yīng)該將作者引用作為一個(gè)對(duì)象刪除,只保留對(duì) author_id 的引用?上面哪一個(gè)是更合適的方法來(lái)實(shí)現(xiàn)這一點(diǎn)?或者還有其他更好的做法嗎?謝謝。
查看完整描述

1 回答

?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

我將我的 DAO (DataAccessObjects) 稱(chēng)為“存儲(chǔ)庫(kù)”。


Spring Data JPA 也在這樣做。


所以我會(huì)創(chuàng)建一個(gè) UserRepository 和一個(gè) PaymentRepository。


存儲(chǔ)庫(kù)可以被其他存儲(chǔ)庫(kù)或服務(wù)調(diào)用。


存儲(chǔ)庫(kù)永遠(yuǎn)不應(yīng)調(diào)用服務(wù)。


UI -> 服務(wù) -> 存儲(chǔ)庫(kù)。


您的 PaymentRepository 可能會(huì)返回這樣的實(shí)體


public class PaymentEntity{

    private long id;

    private DateTime dateTime;

    private UserEntity user;

}

您的 UserRepository 可以返回這樣的實(shí)體


public class UserEntity{

    private long id;

    private DateTime lastLogin;

    private List<PaymentEntity> payments;

}

您的存儲(chǔ)庫(kù)可能如下所示。


public interface PaymentRepository{


    PaymentEntity getPaymentById(long id);

    List<PaymentEntity> getAllPayments();

}



public interface UserRepository{


    UserEntity getUserById(long id);

    List<UserEntity> getAllUsers();

}

因此,您的 PaymentRepository 將調(diào)用 UserRepository 以獲取用戶(hù)進(jìn)行付款。


并且您的 UserRepository 將調(diào)用 PaymentRepository 以獲取所有用戶(hù)付款


我希望我能幫助你


查看完整回答
反對(duì) 回復(fù) 2022-07-27
  • 1 回答
  • 0 關(guān)注
  • 117 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)