如何保护休眠中的列不被读取
How to protect columns in hibernate from being read
假设我有模型配置和用户。
在配置中,我指定与用户的关系,如下所示:
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name= "user")
private User author;
然后当我想要每个特定用户的所有配置时,我得到如下信息:
{"id":1,"key":"Layout","value":"boxed","author":{"id":1,"name":"Roy","login":"roy","password":"spring"}}
我该如何保护
我不确定这是否能解决您的问题。但它看起来像 View 的典型需求,而不是直接 table 获取。
在视图中,您可以控制要读取或不读取的所有列。
没有 Hibernate 读保护的方法。您可以使用声明(insertable = false,updatable = false)保护文件不被更新或插入。
如果您不想将某些字段提供给用户,您应该使用高级逻辑,例如 Json.
中的过滤字段
我找到了解决办法。在实体 class 中,如果我加入列,我可以简单地放置注释 @JsonIgnoreProperties({"prop1", "prop2"}),或者如果它是标准类型 属性 @JsonIgnore 就足够了.
假设我有模型配置和用户。
在配置中,我指定与用户的关系,如下所示:
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name= "user")
private User author;
然后当我想要每个特定用户的所有配置时,我得到如下信息:
{"id":1,"key":"Layout","value":"boxed","author":{"id":1,"name":"Roy","login":"roy","password":"spring"}}
我该如何保护
我不确定这是否能解决您的问题。但它看起来像 View 的典型需求,而不是直接 table 获取。
在视图中,您可以控制要读取或不读取的所有列。
没有 Hibernate 读保护的方法。您可以使用声明(insertable = false,updatable = false)保护文件不被更新或插入。 如果您不想将某些字段提供给用户,您应该使用高级逻辑,例如 Json.
中的过滤字段我找到了解决办法。在实体 class 中,如果我加入列,我可以简单地放置注释 @JsonIgnoreProperties({"prop1", "prop2"}),或者如果它是标准类型 属性 @JsonIgnore 就足够了.