赏金4天后到期。回答此问题可获得+50声望奖励。barsawi13正在寻找一个标准答案**:
在SpringDataElasticSearch中Map嵌套字段是原始的,而且很明显,即使在一个基本示例中也经常出现这种异常
我有两个文件用户和活动,他们都是索引,我想搜索用户的名字和姓氏
用户
@org.springframework.data.elasticsearch.annotations.Document(indexName = "user")
@Entity
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Field(type = FieldType.Text, fielddata = true)
private String firstName;
@Field(type = FieldType.Text, fielddata = true)
private String lastName;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Field(type = FieldType.Nested)
private Set<Activity> activities = new HashSet<>();
}
活动
@org.springframework.data.elasticsearch.annotations.Document(indexName = "activity")
@Entity
public class Activity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Field(type = FieldType.Text, fielddata = true)
private String name;
@ManyToOne
@JsonIgnore
@EqualsAndHashCode.Exclude
private User user;
}
但我总是得到如下例外
原因:com.fasterxml.jackson.databind.jsonmappingexception:(was java.lang.nullpointerexception)未能通过引用用户[“activity”]->java.util.hashset[0]Map源
我使用的是SpringDataElastic3.2.7和es6.8.6
我真的被困了两个星期,我需要做我的搜索没有注解“活动”字段与@jsonignore我有许多文件在我的项目中,提供hashset字段,我是新的弹性,所以任何优化的方法如何忽略或Map这类字段是非常有帮助的。
1条答案
按热度按时间7eumitmz1#
尝试添加
在你的头顶上。这样地: