Sql server 使用Jhipster设置MSSQL的问题
我试图在我的后端项目中使用jhipster,其中一个要求是使用mssql。根据我先前的问题: @鲁德尔建议我用这个Sql server 使用Jhipster设置MSSQL的问题,sql-server,maven-3,jhipster,Sql Server,Maven 3,Jhipster,我试图在我的后端项目中使用jhipster,其中一个要求是使用mssql。根据我先前的问题: @鲁德尔建议我用这个 datasource: type: com.zaxxer.hikari.HikariDataSource url: jdbc:sqlserver://localhost:1433;database=msqltest username: SA password: yourStrong(!)Password
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:sqlserver://localhost:1433;database=msqltest
username: SA
password: yourStrong(!)Password
hikari:
.........
jpa:
database-platform: org.hibernate.dialect.SQLServer2012Dialect
database: SQL_SERVER
.........
设置完这个之后,我需要运行maven命令,以便按照Jhipster的指导,使用这个命令通过liquibase为网关项目和微服务生成Jhipster初始实体
liquibase:diff
并遇到以下错误:
[INFO] Settings
----------------------------
[INFO] driver: com.zaxxer.hikari.HikariConfig
[INFO] url: jdbc:sqlserver://localhost:1433;database=IASDB
[INFO] username: devuser
[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.mbb.ias.domain?dialect=org.hibernate.dialect.SQLServer2012Dialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.Spate.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/20161208102850_changelog.xml
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.109 s
[INFO] Finished at: 2016-12-08T18:28:54+08:00
[INFO] Final Memory: 37M/342M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.5.3:diff (default-cli) on project ias-gateway: Error setting up or running Liquibase: liquibase.exception.DatabaseExceptionnot find database driver: com.zaxxer.hikari.HikariConfig cannot be cast to java.sql.Driver -> [Help 1]
因此,我参考了jhipster,他们确实提到要更改pom.xml中的设置,我也按照:
<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.zaxxer.hikari.HikariConfig</driver>
<url>jdbc:sqlserver://localhost:1433;database=IASDB</url>
<defaultSchemaName>IASDB</defaultSchemaName>
<username>devuser</username>
<password>CIATopSecret</password>
<referenceUrl>hibernate:spring:com.mbb.ias.domain?dialect=org.hibernate.dialect.SQLServer2012Dialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy</referenceUrl>
<verbose>true</verbose>
<logging>debug</logging>
</configuration>
我确实尝试过将pom改为使用com.microsoft.SQLServerDriver,这让我很困惑
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.5.3:diff (default-cli) on project ias-gateway: Error setting up or running Liquibase: liquibase.exception.DatabaseExceptionnot find database driver: com.microsoft.SQLServerDriver -> [Help 1]
有人建议如何更改我的pom吗?如果我想使用子生成器,我需要逐个生成实体?对不起,我的问题是noob。以下是我的Jhipster信息:
##### **JHipster configuration, a `.yo-rc.json` file generated in the root folder**
```yaml
{
"generator-jhipster": {
"jhipsterVersion": "3.12.0",
"baseName": "IASGateway",
"packageName": "com.mbb.ias",
"packageFolder": "com/mbb/ias",
"serverPort": "8080",
"authenticationType": "jwt",
"hibernateCache": "ehcache",
"clusteredHttpSession": false,
"websocket": false,
"databaseType": "sql",
"devDatabaseType": "mysql",
"prodDatabaseType": "mysql",
"searchEngine": false,
"messageBroker": "kafka",
"serviceDiscoveryType": "eureka",
"buildTool": "maven",
"enableSocialSignIn": false,
"jwtSecretKey": "3f2b1ccd09c528361c2b0f321f96fb62728e9830",
"useSass": false,
"applicationType": "gateway",
"testFrameworks": [
"gatling"
],
"jhiPrefix": "jhi",
"enableTranslation": false
}
}
```
##### **Entity configuration(s) `entityName.json` files generated in the `.jhipster` directory**
ls: no such file or directory: .jhipster/*.json
##### **Browsers and Operating System**
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
git version 2.10.2.windows.1
node: v7.2.1
npm: 3.10.10
bower: 1.8.0
gulp:
[18:56:33] CLI version 1.2.2
[18:56:33] Local version 3.9.1
yeoman: 1.8.5
要获得完整的MSSQL支持,您应该使用v3.12.1—在我们支持该数据库之前,您的项目是使用v3.12.0生成的。您也不应该一开始就运行
liquibase:diff
(在应用程序第一次运行liquibase之前,它将失败)
以下代码是新生成项目中MSSQL liquibase的pom配置,我看到的主要区别是驱动程序标记:
<configuration>
<changeLogFile>src/main/resources/config/liquibase/master.xml</changeLogFile>
<diffChangeLogFile>src/main/resources/config/liquibase/changelog/${maven.build.timestamp}_changelog.xml</diffChangeLogFile>
<driver></driver>
<url>jdbc:sqlserver://localhost:1433;database=databaseName</url>
<defaultSchemaName></defaultSchemaName>
<username>SA</username>
<password>yourStrong(!)Password</password>
<referenceUrl>hibernate:spring:com.mycompany.myapp.domain?dialect=org.hibernate.dialect.SQLServerDialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy</referenceUrl>
<verbose>true</verbose>
<logging>debug</logging>
</configuration>
src/main/resources/config/liquibase/master.xml
src/main/resources/config/liquibase/changelog/${maven.build.timestamp}\u changelog.xml
jdbc:sqlserver://localhost:1433;数据库=数据库名称
沙特阿拉伯
您的强(!)密码
hibernate:spring:com.mycompany.myapp.domain?dialogue=org.hibernate.dialogue.sqlserverdialogue&;hibernate.physical\u naming\u strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&;hibernate.implicit\u naming\u strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
真的
调试
<configuration>
<changeLogFile>src/main/resources/config/liquibase/master.xml</changeLogFile>
<diffChangeLogFile>src/main/resources/config/liquibase/changelog/${maven.build.timestamp}_changelog.xml</diffChangeLogFile>
<driver></driver>
<url>jdbc:sqlserver://localhost:1433;database=databaseName</url>
<defaultSchemaName></defaultSchemaName>
<username>SA</username>
<password>yourStrong(!)Password</password>
<referenceUrl>hibernate:spring:com.mycompany.myapp.domain?dialect=org.hibernate.dialect.SQLServerDialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy</referenceUrl>
<verbose>true</verbose>
<logging>debug</logging>
</configuration>