spring-boot-data-jpa使用h2数据库无法创建user表的原因
在使用spring-boot-data-jpa操作h2数据库时,无法创建表名为user的表。该问题可能是由于user是h2数据库的关键字造成的。
h2文档明确指出,关键字不能用作标识符(如表名),除非它们被引号括起。由于user是关键字,因此需要使用引号来表示表名。
要解决此问题,可以在实体类上使用@table注解,并将表名用引号括起来,如下所示:
@entity @table(name = "`user`") public class user { // ... }
另一种解决方法是设置以下属性:
spring.jpa.properties.hibernate.globally_quoted_identifiers=true
这将使hibernate默认给所有表名加上引号,从而避免关键字冲突。