簡體   English   中英

用於讀取現有數據時,如何用數據庫中的數據填充托管bean屬性?

[英]How to fill managed bean properties with data from DB when using for existing data read?

我有一個非常簡單的托管bean LOB ,用於讀取現有的LOB(從DB)以及將新的LOB寫入DB。

@ManagedBean(name = "lob")
@RequestScoped
public class LOB implements Serializable {    
    private int id;
    private String title;
    private String content;    

    public void createNewLOB(){    
       // code for adding new lob goes here
    }

    /** getters and setters for various bean properties go here**/

}

現在,由於我使用的是同一個LOB bean來讀取從DB讀取的現有LOB ,並且要使用同一個bean(當然是不同的實例)將新的LOB寫入DB。 當實例化bean來讀取現有的LOB時,如何告訴bean實例從DB檢索數據?

我應該在每個屬性的getter中檢索特定於每個bean屬性的數據嗎? 我猜這不是一個好選擇,因為我想一次從DB讀取所有數據。

所以,我想要的是,bean屬性應該在一個回合中就用DB中的數據填充,這要早於facelets代碼中使用的EL表達式調用bean屬性的獲取方法。

我能以某種方式告知實例已創建,用於讀取現有數據而不是用於編寫新的LOB嗎?

當實例化bean來讀取現有的LOB時,如何告訴bean實例從DB檢索數據?

只需在(post)構造函數中完成工作即可。


我能以某種方式告訴該實例已創建用於讀取現有數據而不是用於寫入新的LOB嗎?

檢查id是否為null


請注意,您是以這種方式將“托管bean”,“實體”和“數據訪問對象”的概念混合到一個類中。 這是緊密耦合,不一定是好的設計。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM