sql-server - 使用 Jhipster 设置 MSSQL 时出现问题

标签 sql-server maven-3 jhipster

我正在尝试将 jhipster 用于我的后端项目,要求之一是使用 mssql。根据我之前的问题: https://github.com/jhipster/generator-jhipster/issues/4612#issuecomment-265076842

@ruddel 确实建议我使用这个

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

它会按照上面的消息抛出错误或这个:

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

我确实尝试更改我的 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 吗?如果我想使用子生成器,我需要一一生成实体吗?抱歉这个菜鸟问题。这是我的 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&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>

关于sql-server - 使用 Jhipster 设置 MSSQL 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41037946/

相关文章:

sql-server - 使用 CLR 集成表函数进行高效交叉应用

sql-server - 该进程无法连接到订阅者 'xxxxxx'

sql - 在内部联接中使用 like

jhipster - 如何在jHipster中创建新的权威?

sql-server - 如何获取 XML 节点中的 XML 属性列表

maven - JBOSS-作为-MAVEN-插件 :- Authentication Fails BUT Jboss-cli authentications?

maven - 激活资源过滤后编码错误

maven - Maven 3.1的项目时间表在哪里可用?

java - Jhipster Registry 4.0.0异常预打包WAR

java - Amazon Cognito 中的用户角色