sup*_*r.t 3 java hibernate filemaker spring-data-jpa
我正在使用 Spring JPA 2.0.9 和 Hibernate 5.3.5 和这个方言,通过 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我想出的解决方案是将这些引号包含在实体注释中:
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;
...
}
Run Code Online (Sandbox Code Playgroud)
这看起来不太好。
是否可以配置 Hibernate 以便它自动将所有列名括在双引号中?
您可以在定义中设置一个名为hibernate.globally_quoted_identifiersto的属性true,它将引用所有标识符。除此之外还有一个选项是不引用列,但没有选项只引用列。
| 归档时间: |
|
| 查看次数: |
3555 次 |
| 最近记录: |