[英]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.