我从DBA创建的现有表中生成实体类 . 表中的列不是按字母顺序排列的 . 当我启动我的应用程序时,出现以下错误消息
- 错误信息 -
执行DDL表名时出错
数据库中已有一个名为table name的对象
--application.properties--
spring.jpa.hibernate.ddl-auto = none spring.jpa.generate-ddl = false
是否可以从现有表创建实体类,哪些列不是按字母顺序排列的?即使我设置ddl-auto = none,我的应用程序试图创建新表?
org.hibernate.tool.schema.spi.CommandAcceptanceException:在org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:)中通过JDBC语句执行DDL“create table sms.dbo.sms_data_test()”时出错 . 67)〜[hibernate-core-5.3.5.Final.jar:5.3.5.Final]在org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:559)[hibernate-core-5.3 . 5.Final.jar:5.3.5.Final] at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:504)[hibernate-core-5.3.5.Final.jar:5.3.5 . 最终]在org.hibernate.tool.schema的org.hibernate.tool.schema.internal.AbstractSchemaMigrator.createTable(AbstractSchemaMigrator.java:277)[hibernate-core-5.3.5.Final.jar:5.3.5.Final] .internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:71)[hibernate-core-5.3.5.Final.jar:5.3.5.Final] org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration (AbstractSchemaMigrator.java:207)[hibernate-core-5.3.5.Final.jar:5.3.5.Final]在org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:114)[hibernate- core-5.3.5.Final.jar:5.3.5.Final] at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183)[hibernate-core-5.3.5.Final.jar: 5.3.5.Final] org.hibernate的org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72)[hibernate-core-5.3.5.Final.jar:5.3.5.Final] .internal.SessionFactoryImpl . (SessionFactoryImpl.java:310)[hibernate-core-5.3.5.Final.jar:5.3.5.Final] org.hibernate.boot.internal.SessionFactoryBuilderImpl .__ build(SessionFactoryBuilderImpl.java:467) org.hibernate.boot.internal.SessionFactoryBuilderImpl.build [Session @ Hibernate-core-5.3.5.Final.jar :5.3.5.Final]在org.hibernate.jpa.boot .internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939)[hibernate-core-5.3.5.Final.jar:5.3.5.Final] org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider .__ createEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java) :57)[org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:40002)[spring-orm-5.1.0.RC2.jar:5.1.0.RC2] . [spring-orm-5.1 . 0.RC2.jar:5.1.0.RC2] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean .__ createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365)[spring-orm-5.1.0.RC2.jar:5.1.0.RC2]在org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:42002)[spring-orm-5.1.0.RC2.jar:5.1.0.RC2] org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory (AbstractEntityManagerFactoryBean.java:390)[spring-orm-5.1.0.RC2.jar:5.1.0.RC2] org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:377)[spring-orm- 5.1.0.RC2.jar:5.1.0.RC2] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341)[spring-orm-5.1.0.RC2.jar:5.1.0 . RC2] org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)[spring-beans-5.1.0.RC2.jar:5.1.0.RC2] org.springframework.beans.factory .support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1739)[spring-beans-5.1.0.RC2.jar:5.1.0.RC2] atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:576)[spring-beans-5.1.0.RC2.jar:5.1.0.RC2] org.springframework.beans.factory.support . 在Org.springframework.beans.factory.support.AbstractBeanFactory.lambda $ doGetBean $ 0(AbstractBeanFactory.java)的AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)[spring-beans-5.1.0.RC2.jar:5.1.0.RC2] :320)[spring-beans-5.1.0.RC2.jar:5.1.0.RC2] org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)~ [spring-beans-5.1 .0.RC2.jar:5.1.0.RC2] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)[spring-beans-5.1.0.RC2.jar:5.1.0 .RC2] org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)[spring-beans-5.1.0.RC2.jar:5.1.0.RC2] org.springframework.context . support.Abstrac tApplicationContext.getBean(AbstractApplicationContext.java:1085)〜[spring-context-5.1.0.RC2.jar:5.1.0.RC2]在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:855)〜 [spring-context-5.1.0.RC2.jar:5.1.0.RC2]在org.springframework.context.support.AbstractApplicationContext .__ refresh(AbstractApplicationContext.java:548)〜[spring-context-5.1.0.RC2 . jar:5.1.0.RC2] org.springframework.context.support.AbstractApplicationContext.jrLockAndRefresh(AbstractApplicationContext.java:40002)~ [spring-context-5.1.0.RC2.jar:5.1.0.RC2] at org . springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:41008)〜[spring-context-5.1.0.RC2.jar:5.1.0.RC2] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext .refresh(ServletWebServerApplicationContext.java:140)〜[spring-boot-2.1.0.M2.jar:2.1.0.M2] org.springframework.boot.SpringApplication.refresh(SpringApplicat) ion.java: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] 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”的对象 . at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)〜[sqljdbc42-4.2.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1655)~ [ sqljdbc42-4.2.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:885)〜[sqljdbc42-4.2.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerStatement $ StmtExecCmd . doExecute(SQLServerStatement.java:778)〜[sqljdbc42-4.2.jar:na] at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)〜[sqljdbc42-4.2.jar:na] at com . microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445)〜[sqljdbc42-4.2.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:191)~ [sqljdbc42-4.2 .jar:na] at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:166)~ [sqljdbc42-4.2.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerStatemen t.execute(SQLServerStatement.java:751)~ [sqljdbc42-4.2.jar:na] at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95)〜[HikariCP-3.2.0.jar:na ]在com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java)〜[HikariCP-3.2.0.jar:na] org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java) :54)〜[hibernate-core-5.3.5.Final.jar:5.3.5.Final] ...省略了39个常用帧
- 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 = none spring.jpa.generate-ddl = false
spring.jpa.show-SQL =真
最诚挚的问候,JH
1 回答
只有
spring.jpa.hibernate.ddl-auto=none
应该工作,它不会创建表,因为它可以有诸如create,update,none之类的值,无意义无关自动更新/创建/删除如果您没有按字母顺序排列,只要它与您的实体匹配就可以了 .
UPDATE
第1步:如果您没有使用多个数据源,请删除mysql连接器
第2步:添加以下属性以连接MS SQL . (替换您的数据库,用户,传递,端口)