Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带H2和Oracle的Spring引导_Java_Oracle_Hibernate_Spring Boot_H2 - Fatal编程技术网

Java 带H2和Oracle的Spring引导

Java 带H2和Oracle的Spring引导,java,oracle,hibernate,spring-boot,h2,Java,Oracle,Hibernate,Spring Boot,H2,我们正在使用liquibase和hibernate构建spring引导应用程序。 但现在我们面临一些问题 它是为H2工作的,但当切换到oracle时,wee需要添加国有化注释 @Nationalized public String getCreatedBy() { 但现在,h2模式验证正在中断: Schema-validation: wrong column type encountered in column [created_by] in table [foo]; found [varch

我们正在使用liquibase和hibernate构建spring引导应用程序。 但现在我们面临一些问题

它是为H2工作的,但当切换到oracle时,wee需要添加国有化注释

@Nationalized
public String getCreatedBy() {
但现在,h2模式验证正在中断:

Schema-validation: wrong column type encountered in column [created_by] in table [foo]; found [varchar (Types#VARCHAR)], but expecting [nvarchar(255) (Types#NVARCHAR)]
解决这个问题的正确方法是什么?有类似于oracle和h2的映射表吗?

 @Column(name = "created_by", columnDefinition = "nvarchar(255)")

也许可以尝试在oracle模式下运行h2?url=jdbc:h2:mem:testdb;Mode=Oracleand您使用哪个版本的h2?刚刚用hibernate、spring boot和h2版本1.4.196在我的项目上进行了测试。而且@Nationalized对我来说很好。我在oracle模式下运行,zwingend spring boot 2.0.1。probier以后会精确版本吗?我想您的application.properties中有spring.jpa.hibernate.ddl auto=validate属性?我重现了你的问题。如果此属性的值为“无”-则有效。如果“验证”-则会发生错误。我认为你有两种方法来解决你的问题。第一种方法-将此道具更改为“无”或“更新”。第二种方法-为h2和Oracle提供2个不同的application.properties文件或spring配置文件这里有一个很好的文档,介绍如何参数化应用程序属性