我想在我的neo4j属性中设置(updatable = false)

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

我正在使用spring-data-neo4j,我终于在我的项目中进行了审计。

这是我的审计配置

@Configuration
@EnableNeo4jAuditing
class AuditingConfig {

    @Bean
    fun auditorProvider(): AuditorAware<Long> = SpringSecurityAuditAwareImpl()
}

class SpringSecurityAuditAwareImpl : AuditorAware<Long> {

    override fun getCurrentAuditor(): Optional<Long> {
        val authentication: Authentication? = SecurityContextHolder.getContext().authentication

        if(authentication?.isAuthenticated != true ||
                authentication is AnonymousAuthenticationToken)
            return Optional.empty()

        val userPrincipal = authentication.principal as UserPrincipal

        return Optional.ofNullable(userPrincipal.id)
    }
}

这是我的审计课

@JsonIgnoreProperties(
        value = ["createdAt", "updatedAt"],
        allowGetters = true
)
abstract class DateAudit : Serializable {

    @CreatedDate
    val createdAt: LocalDateTime? = null

    @LastModifiedDate
    val updatedAt: LocalDateTime? = null
}

当实体制造第一时,它完美地工作。但是当更新实体时,“createdAt”属性为null。

我知道@CreatedDate只是在创建实体时工作。创建后,它设置为null。在JPA中,@ Column(updatable = false)可以避免此问题。

所以,我想知道spring-data-neo4j有@Column(updatable = false)之类的注释,或解决方案避免这个问题。

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

您应该初始化“createdAt”属性

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