jhipster добавить новое свойство в существующий объект

Я использую jhipster 4.0.0, и я сначала создал два объекта

@Entity
@Table(name = "organization")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Organization implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "orgname")
    private String orgname;

    @Column(name = "orgaddress")
    private String orgaddress;

    @OneToMany(mappedBy = "organization")
    @JsonIgnore
    @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
    private Set<Branch> branches = new HashSet<>();

//geter()
//setter()

}

а также

@Entity
@Table(name = "branch")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Branch implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "branchname")
    private String branchname;

    @Column(name = "branchaddress")
    private String branchaddress;

    @ManyToOne
    private Organization organization;

    //geter()
    //setter()

    }

эти два работают нормально, теперь я добавляю новое свойство под названием Active в объект организации, например

>yo jhipster:entity organization
? Do you want to update the entity? This will replace the existing files for this entity, all your custom code will be overwritten Yes, add more fields and relationshi

================= Organization =================
Fields
orgname (String)
orgaddress (String)

Relationships
branch (Branch) one-to-many


Generating field #3

? Do you want to add a field to your entity? Yes
? What is the name of your field? active
? What is the type of your field? String
? Do you want to add validation rules to your field? No

================= Organization =================
Fields
orgname (String)
orgaddress (String)
active (String)

Relationships
branch (Branch) one-to-many


Generating field #4

? Do you want to add a field to your entity? No

================= Organization =================
Fields
orgname (String)
orgaddress (String)
active (String)

Relationships
branch (Branch) one-to-many


Generating relationships to other entities

? Do you want to add a relationship to another entity? No

================= Organization =================
Fields
orgname (String)
orgaddress (String)
active (String)

Relationships
branch (Branch) one-to-many



 conflict .jhipster\Organization.json
? Overwrite .jhipster\Organization.json? overwrite
    force .jhipster\Organization.json
 conflict src\main\resources\config\liquibase\changelog\20170209093838_added_entity_Organization.xml
? Overwrite src\main\resources\config\liquibase\changelog\20170209093838_added_entity_Organization.xml? overwrite
    force src\main\resources\config\liquibase\changelog\20170209093838_added_entity_Organization.xml
 conflict src\main\java\com\icarat\domain\Organization.java
? Overwrite src\main\java\com\icarat\domain\Organization.java? overwrite
    force src\main\java\com\icarat\domain\Organization.java
identical src\main\java\com\icarat\repository\OrganizationRepository.java
identical src\main\java\com\icarat\web\rest\OrganizationResource.java
identical src\main\java\com\icarat\service\OrganizationService.java
identical src\main\java\com\icarat\service\impl\OrganizationServiceImpl.java
 conflict src\main\java\com\icarat\service\dto\OrganizationDTO.java
? Overwrite src\main\java\com\icarat\service\dto\OrganizationDTO.java? overwrite
    force src\main\java\com\icarat\service\dto\OrganizationDTO.java
identical src\main\java\com\icarat\service\mapper\OrganizationMapper.java
 conflict src\test\java\com\icarat\web\rest\OrganizationResourceIntTest.java
? Overwrite src\test\java\com\icarat\web\rest\OrganizationResourceIntTest.java? do not overwrite
     skip src\test\java\com\icarat\web\rest\OrganizationResourceIntTest.java
identical src\main\resources\config\liquibase\master.xml
identical src\main\resources\ehcache.xml
 conflict src\main\webapp\app\entities\organization\organization.component.html
? Overwrite src\main\webapp\app\entities\organization\organization.component.html? do not overwrite
     skip src\main\webapp\app\entities\organization\organization.component.html
 conflict src\main\webapp\app\entities\organization\organization-detail.component.html
? Overwrite src\main\webapp\app\entities\organization\organization-detail.component.html? overwrite
    force src\main\webapp\app\entities\organization\organization-detail.component.html
 conflict src\main\webapp\app\entities\organization\organization-dialog.component.html
? Overwrite src\main\webapp\app\entities\organization\organization-dialog.component.html? do not overwrite

и когда я запускаю свой проект ./mvnw

он показывает ошибку как

liquibase.exception.ValidationFailedException: Validation Failed:
     1 change sets check sum
          classpath:config/liquibase/changelog/20170209093838_added_entity_Organization.xml::20170209093838-1::jhipster was: 7:2b47689e3924d85d502e6150230cd184 but is now: 7:74e4a48710ed8eaf27e2a0231f7d23a9

и я также пробую все решения, данные этим также

Как изменить существующий объект, созданный с помощью jhipster?

когда я запускаю mvn liquibase: diff после изменения, я получаю вот так

Settings
----------------------------
[INFO]     driver: com.mysql.jdbc.Driver
[INFO]     url: jdbc:mysql://localhost:3306/jhipster2
[INFO]     username: root
[INFO]     password: *****
[INFO]     use empty password: false
[INFO]     properties file: null
[INFO]     properties file will override? false
[INFO]     prompt on non-local database? true
[INFO]     clear checksums? false
[INFO]     changeLogFile: src/main/resources/config/liquibase/master.xml
[INFO]     context(s): null
[INFO]     label(s): null
[INFO]     referenceDriver: null
[INFO]     referenceUrl: hibernate:spring:com.icarat.domain?dialect=org.hibernate.dialect.MySQL5InnoDBDialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
[INFO]     referenceUsername: null
[INFO]     referencePassword: null
[INFO]     referenceDefaultSchema: null
[INFO]     diffChangeLogFile: src/main/resources/config/liquibase/changelog/20170209102144_changelog.xml
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.058 s
[INFO] Finished at: 2017-02-09T15:51:48+05:30
[INFO] Final Memory: 18M/49M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.5.3:diff (default-cli) on project jhipster-2: Error setting up or running Liquibase: liquibase.exception.DatabaseException: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO) -> [Help 1]

Кто-нибудь может мне помочь, пожалуйста


person VISHWANATH N P    schedule 09.02.2017    source источник


Ответы (2)


Вам необходимо указать имя пользователя и пароль базы данных в pom.xml для плагина Liquibase-maven-plugin.

person user1735824    schedule 09.02.2017
comment
спасибо mvn liquibase: diff успешно построена. но когда я снова запускаю, он показывает ту же ошибку с ошибкой anthor, например Описание: Параметру 1 конструктора в com.icarat.service.impl.BranchServiceImpl требуется bean-компонент типа com.icarat.service .mapper.BranchMapper ', который не удалось найти Действие: Рассмотрите возможность определения bean-компонента типа com.icarat.service.mapper.BranchMapper в вашей конфигурации. . Должен ли я отбросить таблицу, и мне нужно создать еще раз - person VISHWANATH N P; 09.02.2017
comment
Ошибка Mapper возникает из-за того, что MapStruct не запускается, BranchMapperImpl создается при запуске mvnw или mvnw compile - person Gaël Marziou; 09.02.2017

когда мы меняем имя пользователя и пароль базы данных в pom.xml для плагина liquibase-maven.

 <plugin>
                    <groupId>org.liquibase</groupId>
                    <artifactId>liquibase-maven-plugin</artifactId>
                    <version>${liquibase.version}</version>
                    <configuration>
                        <changeLogFile>src/main/resources/config/liquibase/master.xml</changeLogFile>
                        <diffChangeLogFile>src/main/resources/config/liquibase/changelog/${maven.build.timestamp}_changelog.xml</diffChangeLogFile>
                        <driver>com.mysql.jdbc.Driver</driver>
                        <url>jdbc:mysql://localhost:3306/jhipsternew</url>
                        <defaultSchemaName>jhipsternew</defaultSchemaName>
                        <username>root</username>
                        <password>################</password>
                        <referenceUrl>hibernate:spring:com.icarat.domain?dialect=org.hibernate.dialect.MySQL5InnoDBDialect&amp;hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&amp;hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy</referenceUrl>
                        <verbose>true</verbose>
                        <logging>debug</logging>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.javassist</groupId>
                            <artifactId>javassist</artifactId>
                            <version>3.18.2-GA</version>
                        </dependency>
                        <dependency>
                            <groupId>org.liquibase.ext</groupId>
                            <artifactId>liquibase-hibernate5</artifactId>
                            <version>${liquibase-hibernate5.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-starter-data-jpa</artifactId>
                            <version>${project.parent.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>javax.validation</groupId>
                            <artifactId>validation-api</artifactId>
                            <version>1.1.0.Final</version>
                        </dependency>
                    </dependencies>
                </plugin>

после этого мы должны бежать

./mvnw liquibase:clearCheckSums



./mvn liquibase:diff

после этого новый «журнал изменений» создается в нашем каталоге src / main / resources / config / liquibase / changelog. Файлы в этом каталоге имеют префикс даты их создания (в формате ггггММддЧЧммсс), а затем имеют заголовок, описывающий, что они делают. Например, 20141006152300_added_price_to_product.xml - хорошее имя. Добавьте этот файл «журнала изменений» в свой файл src / main / resources / config / liquibase / master.xml, чтобы он применялся при следующем запуске приложения. Если вам нужна дополнительная информация об использовании Liquibase

person VISHWANATH N P    schedule 09.02.2017
comment
Удаление пути к классам кажется плохой идеей, я не могу понять, как ваше приложение сможет найти вашу миграцию Liquibase при запуске, когда оно упаковано как война. В прод-профиле тестировали? - person Gaël Marziou; 09.02.2017
comment
Вам не нужно запускать ./mvw liquibase:update миграции выполняются вашим приложением при запуске, поэтому classpath: требуется. - person Gaël Marziou; 09.02.2017