java - 自定义 Spring Data 查询

标签 java spring jpa mapping

表中有“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/

相关文章:

java - 映射为 Rest API Post 请求中的参数

java jama数组问题

java - 如何从结果映射整数列表

spring - 找不到插件 : jpa

java - 如何在 JPQL 中使用通用实体名称

java - JPA 映射 - 每个 child 的 parent 的独特组合

java - 同时从多个线程使用同一个 FluxSink 是否安全

java - JVM 中对象的实例变量存储在哪里?

Spring 5 Web Reactive - 热发布 - 如何使用 EmitterProcessor 将 MessageListener 桥接到事件流

java - 为每个子类创建单独的 hibernate 搜索索引