Java 如何保护hibernate中的列不被读取

Java 如何保护hibernate中的列不被读取,java,hibernate,jpa,passwords,Java,Hibernate,Jpa,Passwords,假设我有配置和用户模型。 在配置中,我指定与用户的关系如下: @ManyToOne(fetch=FetchType.EAGER) @JoinColumn(name=“user”) 私人用户作者 然后,当我需要每个特定用户的所有配置时,我会得到如下结果: {“id”:1,“key”:“Layout”,“value”:“boxed”,“author”:{“id”:1,“name”:“Roy”,“login”:“Roy”,“password”:“spring”} 如何保护我不确定这是否解决了您的问题。

假设我有配置和用户模型。 在配置中,我指定与用户的关系如下:
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name=“user”)
私人用户作者

然后,当我需要每个特定用户的所有配置时,我会得到如下结果:
{“id”:1,“key”:“Layout”,“value”:“boxed”,“author”:{“id”:1,“name”:“Roy”,“login”:“Roy”,“password”:“spring”}


如何保护

我不确定这是否解决了您的问题。但它看起来像是典型的视图需求,而不是直接获取表


在视图中,您可以控制读取或不读取哪些列。

没有休眠读取保护的方法。您可以使用声明(insertable=false,updateable=false)保护文件不被更新或插入。
如果你不想给用户一些字段,你应该使用高级逻辑,比如过滤Json中的字段。

我找到了解决方案。在实体类中,若我加入列,我可以简单地将注释@JsonIgnoreProperties({“prop1”,“prop2”})放进去,或者若它是标准类型属性@JsonIgnore就足够了。

我不理解被读取。。我不知道为什么会有人在冬眠时那样做。。您可以在应用程序的MiddleWare中处理此问题。您知道如何加密密码或从JSON响应中删除条目吗?请指定您在这种情况下使用什么进行JSON解析。谢谢。我发现了一些关于lazy fetching类型的东西,我可以在其中实现它,或者我应该像你说的那样在控制器中返回json之前做些什么。@AdmirŠabanovićlazy不会处理简单类型或OneToOne引用,如果它们被标记为可为null。如果nullable=false,这可能会起作用。