我实际上是在寻找一个“@Ignore”类型的注释,我可以用它来停止某个特定字段的持久化。如何实现这一目标?


当前回答

要忽略一个字段,请使用@Transient注释它,这样它就不会被hibernate映射。 来源:Hibernate注解。

其他回答

要忽略一个字段,请使用@Transient注释它,这样它就不会被hibernate映射。

但是jackson在转换为JSON时不会序列化字段。

如果你需要混合JPA和JSON(JPA省略,但仍然包含在Jackson中)使用@JsonInclude:

@JsonInclude()
@Transient
private String token;

TIP:

你也可以使用JsonInclude.Include。当token == null时,在反序列化期间在JSON中隐藏NON_NULL字段:

@JsonInclude(JsonInclude.Include.NON_NULL)
@Transient
private String token;

@瞬态符合您的需求。

有时候你想:

序列化一个列 忽略被持久化的列:

使用@Column(name = "columnName", insertable = false, updatable = false)

一个好的场景是通过使用其他列值自动计算某个列

要忽略一个字段,请使用@Transient注释它,这样它就不会被hibernate映射。 来源:Hibernate注解。

这个回答来的有点晚,但它完成了响应。

为了避免来自实体的字段被持久化到DB中,可以使用以下两种机制之一:

@Transient—标记字段不可持久的JPA注释

java中的Transient关键字。注意-使用此关键字将阻止该字段与java中的任何序列化机制一起使用。因此,如果字段必须序列化,最好只使用@Transient注释。