代码拉取完成,页面将自动刷新
SpringBootJpa的一个插件,可以在jpa调用save、delete方法的时候,自动操作elasticsearch同步数据,对代码几乎没有入侵
@Configuration
public class RestClientConfig extends AbstractElasticsearchConfiguration {
@Override
@Bean
public RestHighLevelClient elasticsearchClient() {
final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
.connectedTo("你的elasticsearch地址")
.build();
return RestClients.create(clientConfiguration).rest();
}
}
例如
@Repository
public interface StudentRepository extends JpaRepository<Student,Long> , EsSyncRepository<Student,Long> {
}
后续希望能自动生成,有对这方面技术了解的能联系我一下吗
例如
@Getter
@Setter
@ToString
@Entity
@Table(name = "student")
@EsEntity(StudentEsDto.class)
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/* 省略一些业务字段 */
// 使用集合类注册事件列表
@DomainEvents
Collection<Object> domainEvents(){
List<Object> events= new ArrayList<>();
events.add(this);
return events;
}
//所有事件发布完成后调用,一般用来清空事件列表
@AfterDomainEventPublication
void callbackMethod() {
domainEvents().clear();
}
}
@EsEntity
注解,并指明es的领域对象
@Getter
@Setter
@ToString
@Entity
@Table(name = "student")
@EsEntity(StudentEsDto.class)
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/* 省略一些业务字段 */
// 使用集合类注册事件列表
@DomainEvents
Collection<Object> domainEvents(){
List<Object> events= new ArrayList<>();
events.add(this);
return events;
}
//所有事件发布完成后调用,一般用来清空事件列表
@AfterDomainEventPublication
void callbackMethod() {
domainEvents().clear();
}
}
@Getter
@Setter
@ToString
@Document(indexName = "spring-data-test-student")
public class StudentEsDto {
@Id
private Long id;
private String name;
@Field(name = "english_name")
private String englishName;
private Integer age;
private String sex;
@Field(name = "create_time", type = FieldType.Date)
private Date createTime;
}
我自己测试过的
Spring Data Elasticsearch | Elasticsearch | Spring Framework | Spring Boot |
---|---|---|---|
4.4.x | 7.17.3 | 5.3.x | 2.7.x |
如果不是这个版本的es可以查看spring官方的兼容性
https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#preface.versions
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。