无法强制任何列表?到 Java 字符串

问题描述 投票:0回答:1

我有

Link
节点连接到其他
Link
节点。 我正在使用最新版本的
spring-boot-starter-data-neo4j
Lombok

我的

Link
节点如下:

@Node
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Link {

    @Id
    private String linkId;
    private String name;
    @Relationship(type = "IS_LINKED_TO")
    public List<Linkage> linkages;

}

和我的

Linkage
关系如下:

@RelationshipProperties
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Linkage {

    @RelationshipId
    private String id;

    @TargetNode
    private Link link;

    private Integer length;

}

我的存储库如下:

public interface LinkRepository extends Neo4jRepository<Link, String> {
}

当我拨打

linkRepository.findAll()
时,我收到以下警告和错误:

The query used a deprecated function: `id`.

org.neo4j.driver.exceptions.value.Uncoercible: Cannot coerce LIST OF ANY? to Java String

请指教。

neo4j spring-data-neo4j
1个回答
0
投票

查询使用了已弃用的函数:

id

该警告源自 Neo4j 本身的 Cypher 运行时,并且是 通过 Neo4j Java 驱动程序广播到 Spring Data Neo4j。在 此刻这没什么好担心的。 如果您希望 Spring Data Neo4j 停止直观地记录此情况,您可以使用专用记录器 (https://docs.spring.io/spring-data/neo4j/reference/appendix/logging.html)。在您的情况下,这将是需要设置为错误而不是“只是”警告的

org.springframework.data.neo4j.cypher.deprecation
记录器。

org.neo4j.driver.exceptions.value.Uncoercible:无法强制任何列表?到 Java 字符串

我认为您的 Neo4j 实例中的数据有问题。由于我在您的示例中看到的代表非 id 数据的唯一真实的

String
name
,我认为您的其中一个条目可能没有
String
,但可能有
String[]
集。

© www.soinside.com 2019 - 2024. All rights reserved.