【问题标题】:Neo4j Error | List<MyObject> | error- org.neo4j.ogm.exception.core.InvalidPropertyFieldExceptionNeo4j 错误 |列表<我的对象> |错误-org.neo4j.ogm.exception.core.InvalidPropertyFieldException
【发布时间】:2020-04-30 06:54:14
【问题描述】:

我有一个neo4j数据库,数据库中的一个节点有以下内容:

public class Location
{

 . 
 .
 .
 @Property(name = "zone_quantities")
 private List<ZoneQuantity> zoneQuantityList;
}

当我尝试使用 ogm 将节点映射到对象时,出现以下错误:

原因:org.neo4j.ogm.exception.core.InvalidPropertyFieldException:“com.livspace.atp.domain.InvSku#zoneQuantityList”不能作为属性持久化,但未标记为瞬态。

Neo4j 版本 - 3.1.6

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class ZoneQuantity {

    private String zone;
    private Integer quantity;

}

【问题讨论】:

  • List list -> 这工作正常,但是当我使用自己的对象时,它会给出异常。

标签: neo4j spring-data-neo4j neo4j-ogm


【解决方案1】:

Neo4j-OGM 不知道如何处理自定义类型属性 ZoneQuantity。 它要么是一种关系,而且必须这样描述,例如

@Relationship("HAS_ZONE")
private List<ZoneQuantity> zoneQuantityList;

或者您需要为您的自定义类型(集合)提供AttributeConverter,将其转换为数据库兼容类型。例如像这样的转换器https://github.com/neo4j/neo4j-ogm/blob/master/core/src/main/java/org/neo4j/ogm/typeconversion/NumberCollectionStringConverter.java#L37

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多