表中有“iddId”(主键)列和“idd_id”(未使用列)。当我尝试执行时 通过 Spring Data JPA 的“findAll”方法我在创建的对象中得到空的“iddId”字段,因为 hibernate 查询如下所示:
select 'idd0_.idd_id as col_0_0_'...
我尝试使用 @Column(name = "iddId") 注释手动映射字段,但没有任何更改。然后我尝试向实体“idd_id”添加一个附加字段,该实体用 @Column(name="idd_id) 注释并收到异常:
'org.hibernate.DuplicateMappingException: Table [idd] contains physical column name [idd_id] referred to by multiple logical column names: [idd_id], [iddId]'.
是否可以进行这样的查询:“select idd0_.iddId as col_0_0_”?
public class Idd {
@Id
@Column(name = "iddId")
private String iddId;
@Column(name = "idd_id")
private String idd_id;
}
MySql:5.7.28
Spring 数据:2.2.2
最佳答案
只需添加:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
到application.properties
关于java - 自定义 Spring Data 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59425223/