【问题标题】:Spring JPA repository query is returning nullSpring JPA 存储库查询返回 null
【发布时间】: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


【解决方案1】:

问题是您只找到一列SELECT EMPLOYEE_FORM_ID,但尝试填写整个实体RelatorioContribuinteInadimplenteView,然后框架会因为不知道如何填写您的实体而丢失。

使用这个:SELECT * FROM ...

【讨论】:

    猜你喜欢
    • 2017-08-06
    • 2017-04-23
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 2017-11-21
    • 2021-04-16
    相关资源
    最近更新 更多