我已经用@Entity
和@Document
(来自Spring Data Elasticsearch)注释了一个JPA实体,所以我基本上将与JPA相同的POJO索引到Elasticsearch中。
这是一个好的和推荐的做法吗?
如果没有,有什么替代方案?有两个不同的 POJO 并使用 Dozer 之类的东西将 JPA 实体映射到 ES 文档?
我已经用@Entity
和@Document
(来自Spring Data Elasticsearch)注释了一个JPA实体,所以我基本上将与JPA相同的POJO索引到Elasticsearch中。
这是一个好的和推荐的做法吗?
如果没有,有什么替代方案?有两个不同的 POJO 并使用 Dozer 之类的东西将 JPA 实体映射到 ES 文档?
我认为这取决于您的用例和对象模型的复杂性。对于一个简单的对象模型,我认为这很好。对于更复杂的对象模型,需要考虑以下几点:
如果没有,有什么替代方案?有两个不同的 POJO 并使用 Dozer 之类的东西将 JPA 实体映射到 ES 文档?
看起来 Spring Data Elasticsearch正在使用 Jackson 进行序列化。这是一个非常基本的默认配置。如果这对您不起作用并且您不想引入 DTO 类型对象,您可以随时实现自己的 mapper。