如果你在使用 com.baomidou.mybatisplus
框架时,在实体类中使用了 @TableField(exist = false)
注解标记了一个非数据库字段属性,并且在返回 JSON 值时该属性的值为空,可能是因为在序列化 JSON 时忽略了该属性。
默认情况下,Jackson 在序列化 Java 对象为 JSON 时,只会序列化存在的属性。对于被 @TableField(exist = false)
标记的非数据库字段属性,它在 Java 对象中存在,但是在数据库表中不存在,因此在序列化时被忽略了。
如果你希望在序列化 JSON 时包含该属性的值,可以使用 Jackson 提供的 @JsonInclude
注解,将 @JsonInclude(JsonInclude.Include.ALWAYS)
添加到该属性上即可,示例如下:
import com.fasterxml.jackson.annotation.JsonInclude;
public class MyEntity {
@TableField(exist = false)
@JsonInclude(JsonInclude.Include.ALWAYS)
private String myField;
// 省略 getter 和 setter 方法
}