如何让SpringDataNeo4j(SDN)在Kotlin中使用空列表初始化和可选关系集合?

如何让SpringDataNeo4j(SDN)在Kotlin中使用空列表初始化和可选关系集合?,kotlin,neo4j,cypher,spring-data-neo4j,Kotlin,Neo4j,Cypher,Spring Data Neo4j,使用SDN访问Kotlin中的Neo4j,我有一个实体,它具有关系,我只用于从数据库中读取。看起来有点像这样: @NodeEntity 类父(){ @关系(type=“CHILD\u OF”,direction=Relationship.INCOMING) lateinit变量子项:列表 ... 我正在使用带有可选匹配项的自定义查询来检索这些对象。看起来是这样的(实际查询更复杂,但这是有问题的部分): 我希望发生的是,当查询没有返回相关的Child实体时,children字段应该是一个空列表,

使用SDN访问Kotlin中的Neo4j,我有一个实体,它具有关系,我只用于从数据库中读取。看起来有点像这样:

@NodeEntity
类父(){
@关系(type=“CHILD\u OF”,direction=Relationship.INCOMING)
lateinit变量子项:列表
...
我正在使用带有可选匹配项的自定义查询来检索这些对象。看起来是这样的(实际查询更复杂,但这是有问题的部分):

我希望发生的是,当查询没有返回相关的
Child
实体时,
children
字段应该是一个空列表,而不是未设置的

我有没有办法告诉Cypher查询或SDN这样做?

这可以通过在构造时为字段设置一个值来解决,如下所示:

var children:List=emptyList()//没有子项时使用的默认值

不过,我更喜欢
lateinit var
方法,所以如果有办法让它工作的话,我想知道它是什么。

我相信,除了编写自己的getter/setter并初始化它之外,没有别的办法
MATCH (parent:Parent) WHERE ID(parent) IN $parentIds
OPTIONAL MATCH (parent)<-[r1:CHILD_OF]-(child:Child)
RETURN DISTINCT parent, child, r1
kotlin.UninitializedPropertyAccessException: lateinit property children has not been initialized