java - Spring Data JPA native 查询不遵循投影的命名约定

标签 java spring spring-data-jpa

我正在对 PostgreSQL 数据库使用 Spring Boot 2.1.3.RELEASE、Spring Data JPA。

列名使用下划线(例如 created_by )和实体 bean 使用普通 Java camelCase createdBy , getCreatedBy()等等。

我正在尝试使用投影界面编写 native 查询,但我回来了 null值。例子:

public class MyEntity {
    private String createdBy;
    // getters and setters etc
    // more fields here
}

public interface MyProjection {
    String getCreatedBy();
}

public interface MyRepository extends JpaRepository<MyEntity, Long> {
    @Query(value = "
       SELECT DISTINCT cool_table.* FROM cool_table INNER JOIN
       // more SQL things", nativeQuery = true
    )
    List<MyProjection> searchNative(String filter);
}

当我运行它时,下划线分隔的列(其中
与非本地查询一起工作)。

作为实验,我在投影中添加了一个名为 getCreated_by() 的方法。
那一个工作正常......

我不想将投影中的所有方法重命名为带有下划线
他们的名字,因为那看起来很丑。有没有办法获得 native 查询
与预测一起工作?

最佳答案

只需使用注释 @Column并将列名物理设置为在数据库中。另一种选择是将您的架构设置为自动创建并查看自动创建的架构。

关于java - Spring Data JPA native 查询不遵循投影的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55282106/

相关文章:

mysql - SERIALIZED CONTEXT 数据截断问题 [SPRING BATCH]

java - 将初始化代码添加到 Spring Boot 应用程序的正确方法是什么?

java - Spring Boot 数据休息 JPA : @ManyToOne not populating the ForeignKey column in DB

java - 将 JPA 嵌入式实体类 id 映射到可嵌入实体类 id

java - 在 xpath 中搜索

java - 如何在 Camel 蓝图中从正文中剪切前 n 个字节?

为两个客户开发 Java Web 应用程序项目

java - Spring JPA 查询以获取不在表中的提供的 ID 的子列表

java - 如何实现循环延迟? (JavaFX)

java - 如何在 Google Cloud Storage 中批量上传对象?