Liquibase: diff - неподдерживаемый тип свойства для аннотации генератора @CreationTimestamp в ZonedDateTime - PullRequest
0 голосов
/ 08 января 2019

У меня есть сущность с ZonedDateTime, поданная с пометкой @CreationTimestamp:

@CreationTimestamp
@Column(name = "created")
private ZonedDateTime created;

При работе:

mvn liquibase:diff

Я получаю следующую ошибку:

[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.5.5:diff (default-cli) on project myproject: Error setting up or running Liquibase: org.hibernate.HibernateException: Unsupported property type for generator annotation @CreationTimestamp -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Здесь мои зависимости гибернации и ликвидазы в pom.xml :

<!-- The hibernate version should match the one managed by
https://mvnrepository.com/artifact/io.github.jhipster/jhipster-dependencies/${jhipster-dependencies.version} -->
<hibernate.version>5.2.12.Final</hibernate.version>

<!-- The liquibase version should match the one managed by
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies/${spring-boot.version} -->
<liquibase.version>3.5.5</liquibase.version>
<liquibase-hibernate5.version>3.6</liquibase-hibernate5.version>

Какие правильные версии использовать для @CreationTimeStamp для работы с полем ZonedDateTime?

1 Ответ

0 голосов
/ 07 февраля 2019

Обходной путь, который может быть с установщиками объекта:

public void setDateCreated(Object object) {
        if (object.getId() == null) {
            // which will run only when the object is new
            this.dateCreated = Instant.now();
        }
    }
public void setDateUpdated() {
        // which runs everytime the object is updated
        this.dateUpdated = Instant.now();
    }

Или вы можете вручную установить атрибут valueDate в своем списке изменений в liquibase перед запуском diff:

<column name="Join_date" valueDate="${now}"/>

Или закомментируйте аннотации при запуске diffisase и добавьте их обратно, когда закончите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...