列名中的 JPA '.'(点)

Posted

技术标签:

【中文标题】列名中的 JPA \'.\'(点)【英文标题】:JPA '.'(dot) in column name列名中的 JPA '.'(点) 【发布时间】:2021-03-16 22:14:56 【问题描述】:

我有一个使用带有 SQL Server 2012 视图的 JPA 实体的 Spring Boot 应用程序 (REST API)。在那个视图中,我有一个专栏

S.N.

运行 Spring Boot 应用程序并访问所述实体(通过 API)时,出现以下错误。

o.h.engine.jdbc.spi.SqlExceptionHelper   : Invalid column name '`s_n` '.

我尝试使用反引号转义注释并将列名放在引号中

@Column(name="[`S.N` ]")
@Column(name="\"S.N.\"")

请注意,目前无法更改列名,因为我无法控制数据库。

【问题讨论】:

你试过像“S.N”这样的人吗? :) 尝试了所有组合。 【参考方案1】:

通过将以下内容添加到 application.properties 来解决此问题

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

引用自这个答案

https://***.com/a/48442812/8277643

【讨论】:

以上是关于列名中的 JPA '.'(点)的主要内容,如果未能解决你的问题,请参考以下文章

Spring Data JPA - 将列名和值作为参数传递

JPA:@ManyToOne 关系的默认列名映射

Django ManyToMany 字段上的自定义列名

JPA 表映射的自动列名生成

Spring Data JPA“列名ID无效”

sql关键字作为jpa实体列名的用法