如何在Spring Data和Elasticsearch中创建属性瞬态?

时间:2018-06-12 15:02:29

标签: spring elasticsearch spring-data

我的实体中有一个属性,我不想坚持使用Elasticsearch,因为它是"计算的"属性,而不是字段,所以我添加了@Transient(来自spring数据):

public class Vehicle {

    //more stuff

    @Transient
    public String getType() {
        if (something) {
            return "A";
        }
        return "B";
    }

}

但是我收到了映射错误(它被定义为严格,并且它不知道字段"类型")。

我知道我可以使用@JsonIgnore,但是我需要通过Json REST API将一个Vehicle实例返回给用户,并且必须包含该属性。

1 个答案:

答案 0 :(得分:0)

  

我需要通过Json REST将一个Vehicle实例返回给用户   必须包含API和该属性

你正处于严谨的境地!您可以忽略@JsonIgnore所需的任何内容,也可以通过@JsonProperty注释添加任何JSON属性

在这种情况下,您可以执行以下操作:

@JsonProperty("type")
public String getTypeForMyBusinesLogic() {
  return getType();
 //or whatever you want to return
}