H2 使用 @Column 时不创建表(名称= "someName" ,列定义 = "FLOAT(10,7)" )



我使用的是SpringBoot 1.5.14.RELEASE和com.h2数据库:h2。我有一个实体看起来像这个

//.... annotations here
public class SomeEntity {
@Id
private Long id;
@Column(name = "some_columne_name", columnDefinition = "FLOAT(10,7)")
private Double someColumnName;
}

H2由spring.jpa.generate-ddl=truespring.jpa.hibernate.ddl-auto=create启动

但由于某些原因,H2不会创建表,因为在代码的后面,当选择查询运行时,它会抛出SQL Error:42102Table not found

如果我在实体中没有columnDefinition的情况下启动H2,则它成功地创建了表

如何在实体中使用columnDefinition在H2中创建表?

根据H2数据类型文档,正确的格式为FLOAT(precisionInt(而不是FLOAT(precisionInt,precisionInt(。所以您所要做的就是更改列定义部分,它就会起作用。

例如@Column(name = "some_columne_name", columnDefinition = "FLOAT(10)")

至于precisionInt:的值应该是多少

  • FLOAT类型名称的精度值应介于0到24之间
  • DOUBLE类型名称的精度值应介于25到53之间

相关内容

最新更新