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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想在我的neo4j属性中设置(updatable = false)相关的知识,希望对你有一定的参考价值。

我正在使用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)之类的注释,或解决方案避免这个问题。

答案

您应该初始化“createdAt”属性

以上是关于我想在我的neo4j属性中设置(updatable = false)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 FolderBrowserDialog 中设置只读属性

如何在默认导航一个 Geopoint 中设置用户当前位置?

使用属性窗口在 QT 网格布局中设置小部件的行和列

如何在 CSS 中设置图像的最大宽度

从库 C++ 中设置环境变量

在 Freemarker 模板中设置嵌套属性