我正在使用Spring Boot 2.1.3.RELEASE,Spring Data JPA连接PostgreSQL数据库。
列名使用下划线(例如created_by
),实体Bean使用普通的Java驼峰命名法(例如createdBy
,getCreatedBy()
等)。
我尝试编写一个投影接口的本地查询,但是返回的值是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);
}
当我运行它时,对于下划线分隔的列,我会得到null的返回值(使用非本地查询时工作正常)。
作为一个实验,我在我的投影中添加了一个名为
getCreated_by()
的方法,那个方法正常工作...我不想将我的投影中所有方法的名称都重命名为带有下划线,因为那看起来很丑。是否有一种方法可以让本地查询与投影一起工作?
@Column
注释,但仍然不起作用。 - Nikolaos Georgiou