我使用的是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=true
和spring.jpa.hibernate.ddl-auto=create
启动
但由于某些原因,H2不会创建表,因为在代码的后面,当选择查询运行时,它会抛出SQL Error:42102
、Table 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之间