【问题标题】:Customizing Spring Data queries自定义 Spring Data 查询
【发布时间】:2020-04-12 23:10:45
【问题描述】:

我在表中有“iddId”(主键)列和“idd_id”(未使用的列)。当我试图执行 通过 Spring Data JPA 的“findAll”方法我在创建的对象中得到空的“iddId”字段,因为休眠查询看起来像:

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

春季数据:2.2.2

【问题讨论】:

  • 您的 idd_id 列也是表中的主键吗?
  • 请将标题更改为“自定义 Spring Data JPA 查询”

标签: java spring jpa mapping


【解决方案1】:

只需添加:

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

到 application.properties

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-25
    • 2016-08-29
    • 2015-12-07
    • 2014-11-16
    • 2012-09-13
    • 2019-03-10
    • 1970-01-01
    • 2017-08-15
    相关资源
    最近更新 更多