繁体   English   中英

ElasticSearch withJava API-使用类或现有对象映射复杂的类

[英]ElasticSearch withJava API - Mapping a complicated class with from a class or existing object

我的课程-“交易”非常复杂,其中包含许多嵌套对象。 有没有一种方法可以直接从类或现有对象定义映射?

注意:我将其余API与高级别客户端一起使用。 如果只有低级客户端有解决方案,ist也可以。

谢谢

可能无法直接从类或现有对象定义映射。 我所做的是将每个对象转换为JSON字符串,并将其存储为一个String字段。

码:

// Using jackson
ObjectMapper mapper = new ObjectMapper();
String transactionAsJson = mapper.writeValueAsString(transaction); 
clientService.insertObjectToDb(transactionData.getHash(), transactionAsJson, 
             TRANSACTION_INDEX_NAME,  TRANSACTION_OBJECT_NAME );

public String insertObjectToDb(Hash hash, String objectAsJsonString, String index, String objectName) throws IOException {
        IndexResponse indexResponse = null;
        try {
            IndexRequest request = new IndexRequest(
                    index,
                    INDEX_TYPE,
                    hash.toString());
            request.source((jsonBuilder()
                    .startObject()
                    .field(objectName, objectAsJsonString)
                    .endObject()));
            indexResponse = restClient.index(request, RequestOptions.DEFAULT);
        } catch (Exception e) {
            log.error(e.getMessage());
        } finally {
            return indexResponse.toString();
        }
    }

我可以用 mapstruct 映射一个从 ArrayList 延伸的 class<object> ?<div id="text_translate"><p> 尝试将从 Arraylist 扩展的 Object 映射到具有列表的 Class 时遇到问题,我的代码是:</p><ol><li> 首先是 Class,它从 ArrayList 延伸:</li></ol><pre> public class ClassOne extends ArrayList&lt;ClassTwo&gt; {}</pre><ol start="2"><li> 我需要映射到:</li></ol><pre> public class ClassTarget { private String companyId; private List&lt;ObjectTarget&gt; fieldListTarget; }</pre><p> 当我声明映射器时,错误是:</p><pre> java: Can't generate mapping method from iterable type to non-iterable type.</pre><p> 我认为错误在extends ArrayList&lt;SomeObject&gt;我不知道如何使用这种类型的 object 映射字段。</p></div></object>

[英]Can I mapping with mapstruct a class that extends from ArrayList<Object>?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 MapStruct:Object class的映射 Class 未从 Spring 引导中的 Get API 请求映射,如何将 map 映射到对象&gt; 从另一个类中获取已存在的对象 将Class对象映射到泛型对象 创建没有现有类的对象 我可以用 mapstruct 映射一个从 ArrayList 延伸的 class<object> ?<div id="text_translate"><p> 尝试将从 Arraylist 扩展的 Object 映射到具有列表的 Class 时遇到问题,我的代码是:</p><ol><li> 首先是 Class,它从 ArrayList 延伸:</li></ol><pre> public class ClassOne extends ArrayList&lt;ClassTwo&gt; {}</pre><ol start="2"><li> 我需要映射到:</li></ol><pre> public class ClassTarget { private String companyId; private List&lt;ObjectTarget&gt; fieldListTarget; }</pre><p> 当我声明映射器时,错误是:</p><pre> java: Can't generate mapping method from iterable type to non-iterable type.</pre><p> 我认为错误在extends ArrayList&lt;SomeObject&gt;我不知道如何使用这种类型的 object 映射字段。</p></div></object> 将类映射到现有对象列表时,“映射中的重复列” 错误:无法将来自映射的String类的对象转换为[class java.sql.Timestamp] 对象类,Java API Solr中是否有类似Elasticsearch中的IndexingOperationListener的等效类/ API?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM