我正在使用spring-data-elasticsearch-4.0.1-RELEASE和elastic 7.6.2。在存储实体时,一些对象没有被正确地序列化。它的存储如下:
"ownerResource": {
"_class": "x.xxx.xxx.Resource$HibernateProxy$b6cxNN75"
}, ```
我的建议是:不要使用存储在关系数据库中的相同实体来存储它们在 Elasticsearch 中。
你从Hibernate或JPA得到的是一个实体,它基本上是你的实体类的代理,能够通过懒惰地获取属性来填充属性。
这就是你存储在 Elasticsearch(动态创建的代理类(中的内容。
如果在将实体存储在 Elasticsearch 中之前没有加载实体的属性,您希望在其中存储什么?
因此,为您的 Elasticsearch 实体创建一个类,从您的 JPA 实体复制相关/需要的数据并将其存储在 Elasticsearch 中。