2012-09-30 135 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的替代方案。 –

回答