spring JPA使用列定义为MySql8生成错误的SQL查询

inkz8wg9  于 2023-01-12  发布在  Spring
关注(0)|答案(2)|浏览(123)

我正在使用Springboot JPA来生成一个MySql8表。除非我尝试在Column注解中使用columndefinition,否则它工作正常。

@Column(columnDefinition = "boolean default false")
    private Boolean example;

我尝试用TINYINT替换布尔值,但据我所知,MySql8应该支持布尔值。
在表生成过程中出现错误:
原因:java. sql. SQL语法错误异常:SQL语法中有错误;查看与MySQL服务器版本对应的手册,了解在第5行'boolean default false附近使用的正确语法
在我看来,生成的SQL语法似乎有额外的引号,但我不确定如何解决这个问题。

create table `exampleTable` (
       `id` bigint not null auto_increment,
        `example` `boolean default false`,
        primary key (`id`)
    )

编辑:我发现我的问题在这个问题:Spring JPA globally_quoted_identifiers incorrectly quoting column type TEXT

axkjgtzd

axkjgtzd1#

如果要将示例的默认值设置为false,则可以如下所示编写该示例并从中删除columnDefintion
私有布尔示例=false;

vsmadaxz

vsmadaxz2#

通过将spring.jpa.properties.hibernate.globally_quoted_identifiers=false添加到application.properties文件禁用引号
但禁用后,您将无法使用与mysql关键字匹配的列名和表名(例如desc)。

@Column(name = "desc_")
String desc;

相关问题