Добавление объекта вручную в проект JHipster - PullRequest
0 голосов
/ 09 мая 2018

После введения пользовательского UserType я пишу простой класс Entity вместе с его репозиторием и классом модульного тестирования для тестирования UserType.

Вот класс сущности:

@Entity
@Table(name = "person")
@TypeDef(name = "JsonDataUserType", typeClass = JsonDataUserType.class)
public class Person {

  @Id
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
  @SequenceGenerator(name = "sequenceGenerator")
  private Long id;

  private String firstName;

  private String lastName;

  @Type(type = "JsonDataUserType")
  private Map<String, String> additionalData;

  ...
  }
}

И я создаю новую таблицу person в базе данных.

На основе JHipster, создающего документ сущности , я создаю XML-файл databaseChangeLog с именем временной последовательности

<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd
                    http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">

<property name="now" value="now()" dbms="h2"/>

<property name="now" value="current_timestamp" dbms="postgresql"/>

<property name="floatType" value="float4" dbms="postgresql, h2"/>
<property name="floatType" value="float" dbms="mysql, oracle, mssql"/>

<changeSet id="20180508041900-1" author="jhipster">
    <createTable tableName="person">
        <column name="id" type="bigint" autoIncrement="${autoIncrement}">
            <constraints primaryKey="true" nullable="false"/>
        </column>
        <column name="first_name" type="varchar(80)">
            <constraints nullable="false" />
        </column>

        <column name="last_name" type="varchar(80)">
            <constraints nullable="true" />
        </column>

        <column name="additional_data" type="jsonb">
            <constraints nullable="false" />
        </column>
        <!-- jhipster-needle-liquibase-add-column - JHipster will add columns here, do not remove-->
    </createTable>
</changeSet>
<!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove-->

Сбой яичек (тест gradlew). Стек ошибок - это что-то вроде следующего:

    java.lang.IllegalStateException
    Caused by: org.springframework.beans.factory.BeanCreationException
        Caused by: javax.persistence.PersistenceException
            Caused by: org.hibernate.tool.schema.spi.SchemaManagementException 

Когда я запускаю индивидуальный тест, я получаю

Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [person]
...

Чего не хватает?

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