【发布时间】:2018-11-09 11:43:56
【问题描述】:
Spring JPA 存储库查询返回 null,但如果我在数据库上运行相同的查询,它会返回结果。我找不到 jpa 查询返回 null 的原因。
存储库类:
public interface RelatorioContribuinteInadimplenteRepository extends JpaRepository<RelatorioContribuinteInadimplenteView, String>{
@Transactional(readOnly = true, timeout = 600)
@Query(value = " SELECT EMPLOYEE_FORM_ID"
+ " FROM EMPLOYEE_FORM"
+ " WHERE FORM_TYPE_CD = ?1 ", nativeQuery = true)
List<RelatorioContribuinteInadimplenteView> findByFilters(String code);
}
实体类:
@Entity
@Table(name = "EMPLOYEE_FORM")
public class RelatorioContribuinteInadimplenteView implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "FORM_TYPE_CD")
@Getter @Setter
private String regiaoTributaria;
@Id
@Column(name = "EMPLOYEE_FORM_ID")
@Getter @Setter
private String ordem;
}
数据库中的表是:
CREATE TABLE EMPLOYEE_FORM
( "EMPLOYEE_FORM_ID" CHAR(12 BYTE) NOT NULL ENABLE,
"FORM_TYPE_CD" CHAR(12 BYTE) DEFAULT ' ' NOT NULL ENABLE,
PRIMARY KEY ("TAX_FORM_ID")
);
【问题讨论】:
-
你试过只对数据库进行sql查询吗?您确定预期的数据存在吗?
-
您在查询中使用的代码是什么?只要您使用 `CHAR(12) 作为数据类型,它就必须是 12 个字符。因此,您需要 te 前缀带有空格以使其长度为 12。否则它永远不会匹配。
-
正如我所提到的,sql 返回数据库中的预期数据。我正在使用上述实体来映射表字段
标签: java spring spring-mvc spring-data-jpa repository