Я хочу установить (updatable = false) в моем свойстве neo4j - PullRequest
0 голосов
/ 05 октября 2018

Я работаю с 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
}

Он отлично работает, когда сущность делает первым.Но когда обновляется сущность, свойство «createAt» имеет значение null.

Я знаю, что @CreatedDate просто работает при создании сущности.После создания он устанавливает ноль.В JPA эту проблему можно избежать с помощью @Column (updatable = false).

Итак, я хочу знать, что у spring-data-neo4j есть аннотация типа @Column (updatable = false), или решение этой проблемы можно избежать.

1 Ответ

0 голосов
/ 05 октября 2018

Вы должны инициировать свойство "createAt"

...