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

AS400 db2上带有JPA的“未知列”

王棋
2023-03-14

我收到以下错误:

无法执行查询;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)group by DFBOGARM order by DFBOGARM];嵌套异常为org . hibernate . exception . sqlgrammarexception:无法执行查询

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

原因:com . IBM . as 400 . access . as 400 jdbcsqlsyntaxerrorexception:检测到未定义的列名。

查询实现:

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;
}

从 sql 工具执行时,错误消息中的查询将完美执行。

而头是:DFBOGARM,KVANTUM1,DSTOMK,DSTAKK

共有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)

这很有效。

 类似资料:
  • 原因:org.hibernate.exception.sqlgrammarexception:无法执行查询 原因:com.ibm.as400.access.as400JDBCSQLSyntaxerrorexception:检测到未定义的列名。 查询实现:

  • 我有使用JSCH通过sftp传输文件的代码。这段代码可以在我们的一个测试环境中工作,但不能在另一个环境中工作。它不工作的环境启用了FIPS模式,但我不确定这是否导致了问题。在这两种环境中,我都可以使用代码使用的私钥从命令行进行sftp。 JSch和ssh有一些相关的输出,但我不确定在这一点上还能做些什么。SSH密钥和已知主机文件似乎都已正确设置。

  • 编辑: 在我的src/main/resources/application.properties中添加解决了这个问题。

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

  • 问题内容: 此处共有JSON noob。我试图通过一些JSON循环从对象内部的数组中提取第一个图像,经过4个小时的尝试,我决定可能需要一些帮助。 我能够从我知道键的对象中拉出我需要的每个值,但是我有一些数据具有不一致的键名,我基本上需要通过查找部分匹配项然后从中拉出第一个来进行迭代这些结果。 未知元素的Json结构如下所示: 在这种情况下,我需要的是content_2_image,但就我所知,在另

  • 我有一些文件夹/文件读取与PHP真的麻烦。 我对一个文件夹和一个特定文件进行扫描,其中有一个名字,上面写着:“BAILÉN”。当我做“回声”时,它显示“BAILE'N”。最大的问题是php无法识别该文件。函数包括文件、目录、文件、重命名、扫描。。。失败。 我尝试了utf8_编码、解码、iconv,但使用了大量字符集,但没有任何效果。 这是一个名为: https://mega.nz/#!W34XX