在运行测试用例表时,我使用Spring和h2 db作为microsoft-sql-server模式下的集成测试用例。
@Entity
@Table(name = "TeamMemberType", schema = "SCH")
public class TeamMemberType {
@Id
@Column(name = "TeamMemberCode", unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String teamMemberCode;
@Column(name = "Code")
private String code;
}
控制台:
Hibernate: create table SCH.TeamMemberType (TeamMemberCode varchar(255) identity not null, Code varchar(255))
在运行测试用例时,它试图插入db中。
insert INTO SCH.TeamMemberType (TeamMemberCode , Code) values ( 'Dev', 'Developer')
异常以下
org.springframework.beans.factory.BeanCreationException:错误创建bean名'org.springframework.boot.test.web.client.TestRestTemplate':失败;嵌套异常是通过工厂方法创建类路径资源org/springframework/boot/autoconfigure/web/WebClientAutoConfiguration$RestTemplateConfiguration.class: bean实例化中定义的名为“restTemplateBuilder”的bean的org.springframework.beans.factory.BeanCreationException:错误;嵌套异常是org.springframework.beans.BeanInstantiationException:未能实例化org.springframework.boot.web.client.RestTemplateBuilder:工厂方法'restTemplateBuilder‘抛出的异常;嵌套异常是通过构造函数失败创建名为'org.springframework.boot.autoconfigure.web.HttpMessageConvertersAutoConfiguration':bean的Bean的org.springframework.beans.factory.BeanCreationException:错误;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化org.springframework.boot.autoconfigure.web.HttpMessageConvertersAutoConfiguration$$EnhancerBySpringCGLIB$$4162ac5b:构造器抛出的异常;嵌套异常是org.springframework.beans.factory.BeanCreationException:错误创建类路径资源中定义的名为'jacksonHttpMessageConverter‘的bean,org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.class: Bean通过工厂方法实例化失败,嵌套异常是org.springframework.beans.BeanInstantiationException:未能实例化org.springframework.hateoas.mvc.TypeConstrainedMappingJackson2HttpMessageConverter:工厂方法'jacksonHttpMessageConverter’抛出的异常;嵌套异常是org.springframework.beans.factory.BeanCreationException:错误创建类路径中定义的配置名为org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.class: bean的类路径资源通过工厂方法实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化org.springframework.data.rest.core.config.RepositoryRestConfiguration:工厂方法‘配置’抛出的异常;嵌套异常是org.springframework.beans.factory.BeanCreationException:错误创建类路径资源中定义的名称为“存储库”的bean,org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.class: Bean通过工厂方法实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException:未能实例化org.springframework.data.repository.support.Repositories:工厂方法‘存储库’抛出的异常;嵌套异常是在设置bean属性‘实体管理器’的同时创建名为‘teamMemberRepository’的org.springframework.beans.factory.BeanCreationException:错误:不能创建org.springframework.orm.jpa.SharedEntityManagerCreator类型的内部bean (内部bean)#202fd4c4‘;嵌套异常是在设置构造函数参数时使用名称创建bean’(内bean)#202fd4c4':不能解析引用bean 'entityManagerFactory‘;嵌套异常是org.springframework.beans.factory.BeanCreationException:错误创建bean,名为“实体管理工厂”:对FactoryBean的单例对象进行后处理失败;嵌套异常是org.springframework.jdbc.datasource.init.ScriptStatementFailedException:未能执行file:/C:/Users/myprojectpath/target/test-classes/data.sql:插入SCH.TeamMemberType (TeamMemberCode,Code)值的script语句#1 ( 'Dev','Developer');嵌套异常是org.h2.jdbc.JdbcSQLException:数据转换错误转换"Dev";SQL语句: 由: org.h2.jdbc.JdbcSQLException:转换"Dev“的数据转换错误;SQL语句:插入到SCH.TeamMemberType (TeamMemberCode,Code)值( 'Dev','Developer')中,由: java.lang.NumberFormatException: For input string:”Dev“引起
为什么h2 db故意将"Dev
“转换为Number
发布于 2018-07-27 01:09:29
删除@GeneratedValue(strategy = GenerationType.IDENTITY)
,因为您不希望Hibernate为您生成ID,因为您的ID是一个字符串。您必须在每次插入操作中手动设置它。
https://stackoverflow.com/questions/51554287
复制相似问题