spring-boot - Spring boot-JPA 从现有表中生成实体错误
问题描述
我从 DBA 制作的现有表中生成了实体类。表中的列未按字母顺序排列。当我启动我的应用程序时,出现以下错误消息
- 错误信息 -
执行 DDL 表名时出错
数据库中已经有一个名为表名的对象
--application.properties--
spring.jpa.hibernate.ddl-auto=无 spring.jpa.generate-ddl=false
是否可以从现有表中创建实体类,哪些列不是按字母顺序排列的?即使我设置 ddl-auto=none,我的应用程序也尝试创建新表?
785)~[spring-boot-2.1.0.M2.jar:2.1.0.M2]在org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:418)~[spring-boot-2.1.0.M2 .jar:2.1.0.M2] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:337) ~[spring-boot-2.1.0.M2.jar:2.1.0.M2] 在 org.springframework .boot.SpringApplication.run(SpringApplication.java:1269) ~[spring-boot-2.1.0.M2.jar:2.1.0.M2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1257) ~[spring-boot-2.1.0.M2.jar:2.1.0.M2] at com.kr.dhl.EPassportApplication.main(EPassportApplication.java:25) ~[classes/:na] 原因:com.microsoft .sqlserver.jdbc.SQLServerException:数据库中已经有一个名为“sms_data_test”的对象。在 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:
-- http://maven.apache.org/xsd/maven-4.0.0.xsd">4.0.0
<groupId>com.example</groupId>
<artifactId>webservice</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>webservice</name>
<description>webservice Java-SpringBoot version</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.M2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency> -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc42</artifactId>
<version>4.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- ADDED FOR Querydsl -->
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
spring.jpa.database=sql 服务器
spring.jpa.hibernate.ddl-auto=无 spring.jpa.generate-ddl=false
spring.jpa.show-sql=true
最好的问候, JH
解决方案
只是spring.jpa.hibernate.ddl-auto=none
应该工作,它不会创建表,因为它可以具有诸如创建、更新、无等值,没有意味着什么都不做自动更新/创建/删除
如果您没有按字母顺序排列,只要它与您的实体匹配,那很好。
更新
STEP1:如果您不使用多个数据源,请删除 mysql 连接器
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
第 2 步:添加以下属性以连接 MS SQL。(替换您的数据库、用户、密码、端口)
spring.datasource.url=jdbc:sqlserver://localhost;databaseName=springbootdb
spring.datasource.username=sa
spring.datasource.password=Projects@123
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
spring.jpa.hibernate.ddl-auto = none
推荐阅读
- groovy - 在 JMeter 5.3 中,变量在函数中不起作用
- excel - 是否有可扩展的公式将数据块转换为垂直列表?
- html - 如何在IOS中禁用自动省略号
- php - 如何跳过 loop_shop_per_page 中不可用的产品?
- c# - BUG:使用“eml”文件附件(通过 Outlook 互操作 API)发送的电子邮件未正确编码
- c++ - c++中多个字符串中的元音数。输入与停用词“end”一样多的字符串,输出必须是每个字符串中的元音数
- java - 有没有办法将 HttpServletRequest 转换为 PageContext
- python - 问题索引从 xml 中提取的数据
- python - playwright._impl._api_types.Error:评估失败:检索 dataLayer 变量时的循环对象值 - Playwright-Python
- r - 如何使用 taskscheduleR 自动化 R 中的脚本?