Spring jhipster在现有实体中添加新属性

Spring jhipster在现有实体中添加新属性,spring,spring-boot,jhipster,Spring,Spring Boot,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

我正在使用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()

}
这两个工作正常,现在我将名为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
我也试着用这个给出的所有解

当我运行mvn liquibase:diff after change时,我会这样做

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]

有人能帮我吗

您需要为liquibase maven插件在pom.xml中设置数据库用户名和密码

当我们为liquibase maven插件在pom.xml中更改数据库用户名和密码时,您需要为liquibase maven插件在pom.xml中设置数据库用户名和密码

 <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>

在src/main/resources/config/liquibase/changelog目录中创建新的“更改日志”之后。该目录中的文件以其创建日期(yyyyMMddHHmmss格式)作为前缀,然后有一个标题描述它们的工作。例如,20141006152300_将_price_添加到_product.xml是一个好名字。在您的src/main/resources/config/liquibase/master.xml文件中添加此“更改日志”文件,以便在下次运行应用程序时应用此文件,如果您想了解有关使用liquibase的更多信息,请参阅我们在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>

在src/main/resources/config/liquibase/changelog目录中创建新的“更改日志”之后。该目录中的文件以其创建日期(yyyyMMddHHmmss格式)作为前缀,然后有一个标题描述它们的工作。例如,20141006152300_将_price_添加到_product.xml是一个好名字。将此“更改日志”文件添加到src/main/resources/config/liquibase/master.xml文件中,因此,如果您想了解有关使用Liquibase的更多信息,请在下次运行应用程序时应用它。

感谢mvn Liquibase:diff现在已成功构建。但当我再次运行时,它会显示相同的错误,错误描述如下:com.icarat.service.impl.BranchServiceImpl中构造函数的参数1需要找不到类型为“com.icarat.service.mapper.BranchMapper”的bean操作:考虑在配置中定义类型为“com.icarat.service.mapper.BranchMapper”的bean。我是否应该删除表并需要再次创建Mapper错误源于MapStruct未运行,BranchApperImpl是在运行
mvnw
mvnw compile
时生成的,感谢mvn liquibase:diff现在已成功构建。但当我再次运行时,它会显示与错误相同的错误,如描述:Parametercom.icarat.service.impl.BranchServiceImpl中构造函数的1需要找不到类型为“com.icarat.service.mapper.BranchMapper”的bean操作:考虑在配置中定义类型为“com.icarat.service.mapper.BranchMapper”的bean。如果我删除表并需要再次创建,Mapper错误来自未运行的MapStruct,BranchApperImpl是在您运行
mvnw
mvnw compile
时生成的,删除类路径似乎是一个坏主意,我无法理解当打包为war时,您的应用程序如何在启动时找到您的Liquibase迁移。您在prod profile中测试过它吗?您不需要运行
/mvw liquibase:update
迁移在应用程序启动时由应用程序执行,这就是为什么需要
类路径:
。删除类路径似乎不是个好主意,我无法理解,当打包为war时,你的应用程序如何在启动时找到你的Liquibase迁移。您在prod profile中测试过吗?您不需要运行
/mvw liquibase:update
迁移在应用程序启动时由应用程序执行,这就是为什么需要
类路径:
./mvnw liquibase:clearCheckSums



./mvn liquibase:diff