Spring boot jpa / hibernate - неправильный тип столбца (поле json) - PullRequest
0 голосов
/ 10 декабря 2018

Я работаю над отображением таблицы в POJO с помощью весенней загрузки, и получаю следующую ошибку:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/mercadolibre/linters/db/config/DbaConfig.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [linter_summary] in table [result]; found [json (Types#CHAR)], but expecting [varchar(255) (Types#VARCHAR)]

поле linter_summary в БД имеет тип JSON и на моемPojo это строкаЯ не понимаю, почему он делает эту ошибку, есть ли в java специальная переменная для полей JSON?

1 Ответ

0 голосов
/ 10 декабря 2018

Добавьте эту зависимость Maven:

    <!-- https://mvnrepository.com/artifact/com.vladmihalcea/hibernate-types-52 -->
    <dependency>
        <groupId>com.vladmihalcea</groupId>
        <artifactId>hibernate-types-52</artifactId>
        <version>2.3.5</version>
    </dependency>

Затем добавьте эту аннотацию к классу сущности:

@TypeDefs({
    @TypeDef(name = "json", typeClass = JsonStringType.class),
    @TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
})

Затем добавьте это в определение столбца:

@Type( type = "json" )
@Column( columnDefinition = "json" )

где @Type равно org.hibernate.annotations.Type

Пояснения см. в этой статье

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