我正在使用Spring Boot 2.1.3.RELEASE,针对PostgreSQL数据库的Spring Data JPA。
列名使用下划线(例如created_by
)和实体bean正常的Java camelCase 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);
}
运行此命令时,对于下划线分隔的列(其中 与非本地查询配合使用很好。
作为一个实验,我在投影中添加了一个名为getCreated_by()
的方法
那个很好用...
我不想重命名投影中的所有方法以在其下划线 他们的名字,因为看起来很难看。有没有办法获取本地查询 与投影一起工作?
答案 0 :(得分:0)
只需使用注释@Column
并按照数据库中的物理设置列名。另一种选择是将架构设置为自动创建,并查看自动创建的架构。