2012-09-30 194 views
1

我有一個實體是這樣的:隱藏密碼字段

public class User { 
    @Column(name = "password") 
    @Element(name = "pass", data = true) 
    private String password; 
} 

我想是該領域的密碼不被讀取/默認填入查詢。但是在某些情況下,我當然想要檢查PWD,在這種特殊情況下,PWD應該被用戶對象中的openJPA讀取和填充。

我可以用什麼樣的Fetch策略或JPQL查詢來實現? 我認爲FetchType.Lazy只適用於聯合表格而不是單個字段。 此外,我無法想象一個JPQL查詢,我可以告訴openJPA覆蓋此FetchType並加載此字段,以防我真的需要PWD檢查。

非常感謝! 塞巴斯蒂安

+0

你爲什麼關心,如果它的加載?您是否將該實體按原樣發送給第三方?你是否以明文形式存儲密碼?如果是這樣,這是主要的安全問題。給它們加鹽並將它們散列。 –

+0

pwd已經被哈希了。它也隱藏在實體發送給客戶端之前......但是這種解決方法相當難看。因此,我正在尋找不需要爲每個實體創建額外的DTO的替代方案。 –

回答