【发布时间】:2018-09-14 09:24:10
【问题描述】:
我正在使用 Spring JPA 2.0.9 和 Hibernate 5.3.5 和 this dialect 使用来自 distribution 的官方 JDBC 驱动程序通过 JDBC 访问 FileMaker (v16) 数据库。
问题是生成的 SQL 最终以列名为前缀,并以相应的表名为前缀,例如:
select
marketingc0_.a__IDPK_MarketingCategory as a__IDPK_1_0_0_, marketingc0_.Active as Active2_0_0_
from MarketingCategories as marketingc0_
where marketingc0_.a__IDPK_MarketingCategory=1
哪个 FileMaker 不接受抱怨语法错误:
[08007][27034] [FileMaker][FileMaker JDBC] FQL0001/(1:153):有 查询语法错误。
但是,如果列名用这样的双引号括起来,它会毫无怨言地吞下 SQL:
select
marketingc0_."a__IDPK_MarketingCategory" as a__IDPK_1_0_0_, marketingc0_."Active" as Active2_0_0_
from MarketingCategories as marketingc0_
where marketingc0_.a__IDPK_MarketingCategory=1
我想出的解决方案是将这些引号包含到实体注释中:
public class MarketingCategory {
@Id
@Column(name = "\"a__IDPK_MarketingCategory\"")
private Integer id;
@Column(name = "\"a_ID_User\"")
private Integer userId;
@Column(name = "\"Active\"")
private Boolean active;
...
}
看起来不太好。
是否可以将 Hibernate 配置为自动将所有列名用双引号括起来?
【问题讨论】:
标签: java hibernate spring-data-jpa filemaker