首页 > 解决方案 > spring boot Neo4j⚡️RX dto 投影与关系不起作用

问题描述

我正在尝试使用 DTO 投影,仅通过 DTO 获取选定的关系来优化 Neo4j 查询。

它适用于普通字段,但是当我尝试获得与投影字段的洞察关系时,它返回 null。

这是我的节点实体


@Node("Subscription")
data class Subscription(
        @Id
        val id: UUID,
        @Relationship(type = "TO_PLAN", direction = OUTGOING)
        val plan: SubscriptionPlan?,
        @Relationship(type = "HAS_INVOICE", direction = OUTGOING)
        val invoice: Invoice?,
        @Relationship(type = "HAS_INSIGHT", direction = OUTGOING)
        val insight: Map<Insight, SubscriptionInsightsRelationship>,
        val status: SubscriptionStatuses,
        val isAutoRenewal: Boolean,
        val insightsLastChange: LocalDateTime?,
        @CreatedDate
        val createdDate: LocalDateTime?,
        @LastModifiedDate
        val lastModifiedDate: LocalDateTime?
)

Map 是如何在 Neo4j 中设置丰富的关系⚡️RX

这是我的投影 DTO

data class RetrieveSubscriptionDto(
        val id: UUID,
        val insight: Map<Insight, SubscriptionInsightsRelationship>?,
        val status: SubscriptionStatuses,
        val lastModifiedDate: LocalDateTime?
)

这是存储库

interface SubscriptionRepository : ReactiveNeo4jRepository<Subscription, UUID> {
    fun findAllByIdIsNotNull(): Flux<RetrieveSubscriptionDto>
}

此投影的返回值为

   {
        "id": "d3a816e5-d0be-4721-b34d-346b011b9757",
        "insight": null,
        "status": "ACTIVE",
        "lastModifiedDate": "2020-10-18T01:29:40.37691"
    }

标签: neo4jspring-data-restspring-data-neo4jreactive

解决方案


推荐阅读