繁体   English   中英

JPA 为带有列定义的 MySql8 生成不正确的 SQL 查询

[英]JPA generates incorrect SQL query for MySql8 with columdefinition

我正在使用 Springboot JPA 生成 MySql8 表。 它工作正常,除非我尝试在 Column 注释中使用 columndefinition。

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

我尝试用 TINYINT 替换 boolean,但据我所知,MySql8 应该支持 boolean。

我在表生成期间收到错误:

Caused by: java.sql.SQLSyntaxErrorException: 你的 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 global_quoted_identifiers incorrectly quoting column type TEXT

如果你想将示例的默认值设置为 false 那么你可以这样写并从那里删除 columnDefintion

私人 Boolean 示例=假;

通过将spring.jpa.properties.hibernate.globally_quoted_identifiers=false添加到application.properties文件来禁用引号

但禁用后,您将无法使用匹配 mysql 关键字的列名和表名(例如desc )。 通过添加下划线解决方法:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM