当前位置: 首页 > 知识库问答 >
问题:

AS400 db2上使用JPA的“未知列”

董凡
2023-03-14

原因:org.hibernate.exception.sqlgrammarexception:无法执行查询

原因:com.ibm.as400.access.as400JDBCSQLSyntaxerrorexception:检测到未定义的列名。

查询实现:

public interface DistributionRepository extends JpaRepository<ERHDSTV1, Long> {

@Query(value="select  "
        + "    DFBOGARM, "
        + "    sum(KVANTUM1) as KVANTUM1, "
        + "    (sum(DSTOMK) * 1000 / sum(KVANTUM1)) as DSTOMK, "
        + " (sum(DSTAKK) * 1000 / sum(KVANTUMAKK)) as DSTAKK "
        + "from NHODATA.ERHDSTV1 "
        + "where DFSALVAR in(52, 55) "
        + "group by DFBOGARM "
        + "order by DFBOGARM", nativeQuery = true)
List<ERHDSTV1> findSummedValuesFor52and55();}
@Entity
@IdClass(ERHDSTV1Id.class)
@Table(name = "ERHDSTV1")
@Data
public class ERHDSTV1 {
   @Id
   @Column(name = "DFBOGARM")
   private String yearMonth;
   @Id
   @Column(name = "DFSALVAR")
   private Long salesType;
   @Column(name = "KVANTUM1")
   private Long volumeOne;
   @Column(name = "DSTOMK")
   private Long distributionCosts;
   @Column(name = "DSTMDN")
   private Long distributionMedian;
   @Column(name = "KVANTUMAKK")
   private Long volumeAccumulated;
   @Column(name = "DSTAKK")
   private Long distributionAccumulated;
   @Column(name = "DSTMNDAKK")
   private Long distributionMedianAccumulated;
}

共有1个答案

王长卿
2023-03-14

错误是我必须为上面的每一列选择值。

这意味着我的查询是这样的:

@Query(value = "select  "
        + "    DFBOGARM, 1 as DFSALVAR, 1 as DSTMND, 1 as DSTMNDAKK, 1 as KVANTUMAKK, "
        + "    sum(KVANTUM1) as KVANTUM1, "
        + "    (sum(DSTOMK) * 1000 / sum(KVANTUM1)) as DSTOMK, "
        + " (sum(DSTAKK) * 1000 / sum(KVANTUMAKK)) as DSTAKK "
        + "from NHODATA.ERHDSTV1 "
        + "where DFSALVAR in(52, 55) "
        + "group by DFBOGARM "
        + "order by DFBOGARM", nativeQuery = true)

这招奏效了。

 类似资料:
  • 我收到以下错误: 无法执行查询;SQL [select DFBOGARM,sum(KVANTUM1) as KVANTUM1,(sum(dst omk)* 1000/sum(KVANTUM1))as dst omk,(sum(dst akk)* 1000/sum(KVANTUMAKK))as dst akk from nho data。ERHDSTV1其中DFS val in(52,55)grou

  • 即使我在表中设置了关系和定义了外键,我得到这个错误的原因是什么?

  • 我正在编写一个spring boot+Hibernate JPA应用程序,我的Hibernate代码不工作,下面是详细信息 实体类: 服务/DAO: 我已经检查了实体类中的表名和列名,所有这些都是正确的,这是一个简单的映射,我也不涉及第二个表。

  • 问题内容: 一个运行了几个月的应用程序已经停止使用已经有几个月历史的JPA 批注。在进行集成测试时,我看到许多“ ”类型错误。 我不清楚这里出了什么问题。 我没有文件,因为我正在使用hibernate实体管理器。由于我仅使用注释,因此我的实体没有.hbm.xml文件。我的文件很小,可以正常保存。 我显然丢失了一些东西,但不能动弹。 我正在使用hibernate批注3.2.1,hibernate-e

  • 您好,我是JPA Spring boot的新手,现在我正在尝试将两个表之间的连接转换为第三个表。所以我有一个医生和病人表,其中有它的属性,一个医生可以检查每个病人,一个病人可以看望每个医生。但是在一次检查中,不能有超过一个病人和一个医生。对于医生,我想保留他们检查过的患者的信息,分别是患者的信息,以及他们检查过的医生的信息。我想创建一个名为DoctorVisit的中间表,其中我有做检查的医生的id

  • 我有一个困扰我几天的问题。我正在开发一个使用JPA的Play 2.4.0Java应用程序。本地(Foreman)一切正常,Hibernate自动创建架构,表等。 但是,Heroku上不会生成架构和表,我在访问应用程序(get test app/)时遇到此异常: 这是我的build.sbt: 这是我的conf/application.conf 这是我的应用程序控制器: 这是我的资产/实体: 这是我的