You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Data实现:实体属性仅在ES持久化时忽略的注解方案

解决方案:区分JPA与Elasticsearch的字段持久化

这个需求完全可以实现,你需要在@xyz处替换为**@org.springframework.data.elasticsearch.annotations.Transient**(Spring Data Elasticsearch专属的Transient注解)。

注解说明:

  • 该注解仅对Elasticsearch的实体映射生效,标记后myDate字段不会被同步到ES索引中;
  • 它不会影响JPA的持久化逻辑,@Column注解依然正常生效,字段会被存入PostgreSQL数据库。

修改后的实体代码:

@Entity
@Table("example")
@Document(indexName = "example")
public class Example implements Serializable {
  
  @Column(name = "my_date")
  @org.springframework.data.elasticsearch.annotations.Transient
  private Instant myDate;

}

注意:不要使用org.springframework.data.annotation.Transient(通用版Transient),它会同时排除JPA和ES中的字段,不符合需求;而@JsonIgnore仅作用于JSON序列化流程,Spring Data Elasticsearch处理实体映射时不依赖该注解,因此无效。

内容的提问来源于stack exchange,提问作者Wang Tang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 08:02:37