找不到能够从类型 [java.util.LinkedHashMap<?, ?>] 转换为类型的转换器
No converter found capable of converting from type [java.util.LinkedHashMap<?, ?>] to type
我在 couchbase 数据库中有这样的文档
{
"hostel": {
"city": {}
...
}
}
我在存储库中定义了这个查询
@Query("UPDATE #{#n1ql.bucket} SET hostel.state = where hostel.id= RETURNING #{#n1ql.bucket}.hostel ")
Hostel update(String entityId, String newState);
但是当我 运行 它时,我得到了这个错误:
org.springframework.core.convert.ConverterNotFoundException:
No converter found capable of converting from type [java.util.LinkedHashMap<?, ?>] to type [com.model.Hostel]
旅舍类型:
@Data
@Builder
@AllArgsConstructor
@JsonInclude(NON_NULL)
@EqualsAndHashCode
public class Hostel {
private @NotNull String id;
private @NotNull String city;
private JsonObject commodities;
}
我也试过:
@Query("UPDATE #{#n1ql.bucket} SET hostel.state = where hostel.id= RETURNING #{#n1ql.bucket}.hostel ")
void update(String entityId, String newState);
但是我得到了错误:
org.springframework.data.couchbase.core.CouchbaseQueryExecutionException: Query returning a primitive type are expected to return exactly 1 result, got 0
根据Spring Data: Modifying Query
You can specify the following return types:
void
int (updated record count)
boolean(whether a record was updated)
在您的情况下,您有 return 类型 Hostel
如果您使用 SpringData
,则有什么不好。 Spring 无法将查询执行的结果转换为 Hostel
类型。
尝试使用之前指定的类型之一
我在 couchbase 数据库中有这样的文档
{
"hostel": {
"city": {}
...
}
}
我在存储库中定义了这个查询
@Query("UPDATE #{#n1ql.bucket} SET hostel.state = where hostel.id= RETURNING #{#n1ql.bucket}.hostel ")
Hostel update(String entityId, String newState);
但是当我 运行 它时,我得到了这个错误:
org.springframework.core.convert.ConverterNotFoundException:
No converter found capable of converting from type [java.util.LinkedHashMap<?, ?>] to type [com.model.Hostel]
旅舍类型:
@Data
@Builder
@AllArgsConstructor
@JsonInclude(NON_NULL)
@EqualsAndHashCode
public class Hostel {
private @NotNull String id;
private @NotNull String city;
private JsonObject commodities;
}
我也试过:
@Query("UPDATE #{#n1ql.bucket} SET hostel.state = where hostel.id= RETURNING #{#n1ql.bucket}.hostel ")
void update(String entityId, String newState);
但是我得到了错误:
org.springframework.data.couchbase.core.CouchbaseQueryExecutionException: Query returning a primitive type are expected to return exactly 1 result, got 0
根据Spring Data: Modifying Query
You can specify the following return types:
void
int (updated record count)
boolean(whether a record was updated)
在您的情况下,您有 return 类型 Hostel
如果您使用 SpringData
,则有什么不好。 Spring 无法将查询执行的结果转换为 Hostel
类型。
尝试使用之前指定的类型之一