问题标签 [native-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5828 浏览

ios - 在 Core Data 中编写原生 SQL

在我的项目中使用 Core Data 时,我需要编写一个原生 SQL 查询。我真的需要这样做,因为我现在正在使用NSPredicate它并且效率不够高(仅在一种情况下)。我只需要编写几个子查询和连接来获取大量行并按特殊字段对它们进行排序。特别是,我需要按其子实体的值总和对其进行排序。现在我正在使用 NSPredicate 获取所有内容,然后手动对结果(数组)进行排序,但这需要很长时间,因为有成千上万的结果。

如果我错了,请纠正我,但我很确定这不会是一个巨大的挑战,因为有一种在 iOS 应用程序中使用 sqlite 的方法。

如果有人能引导我走向正确的方向,那就太棒了。提前致谢。

编辑: 让我解释一下我在做什么。这是我的 Coredata 模型:

核心数据模型

这是我的结果在 iPad 上的样子: iPad截图

我展示了一个表格,其中每个客户都有一行,其中每个客户都有他从 2012 年 1 月到 2012 年 6 月(最后)和 2013 年(当前)的销售额。旁边是Curr这两个值之间的差异。毛利率和覆盖率也是如此。

每个客户都保存在Kunde表中,每个客户Kunde都有几个PbsRows。PbsRow实际上持有每月销售额的总和。

因此,为了显示这些结果,我正在做的是获取PbsRows2013 年 1 月至 2013 年 6 月之间的所有数据,然后执行以下操作:

现在我的所有客户 (Kunde) 都有 2013 年 1 月到 2013 年 6 月之间的记录。然后我使用 for 循环来计算每个客户的总和。

这个想法是获取当年的销售额并将它们与去年进行比较。坏事是有很多客户,而且for-loop 只需要很长时间:-(

0 投票
1 回答
3486 浏览

hibernate - 休眠抛出:在“”之后发现了一个意外的令牌“”

我有一个本机 SQL 查询,我想通过 hibernate 运行,但抛出一个错误:

我运行执行更新的代码是:

在调试期间,我可以看到 SQLQuery 对象内部,并且 sql 是:(在 db2 中运行良好)

如果我手动运行上面代码生成的 sql,它将执行得很好。但是,当我尝试通过休眠来执行此操作时,它会抛出“syntaxErrorException”。有任何想法吗?谢谢

0 投票
1 回答
11929 浏览

java - QueryDSL 使用本机 SQL 连接和子查询

我使用 Spring Data 和 QueryDSL 3.2.4,我想使用 QueryDSLs 原生 SQL API 实现以下 SQL 查询:

联接不在 FK 列上,而是在子查询 ORDER_GROUP 的某个任意属性上。此子查询聚合 OrderHeader 上的一些最小/最大值,以供以后在排序中使用。

查询类型有:

现在的问题:

  1. 如何在 ALL_ORDERS 子查询的底部进行连接?我已经尝试了以下方法:

    /li>

但这甚至不会编译,因为没有匹配的方法 leftJoin 可用。连接不在 FK 列上,而是在某个任意属性上。子查询 ORDER_GROUP

  1. 如何实现计算 nof_orders_per_group(SELECT 列表中的第 7 项)的相关子查询?(我不知道如何做到这一点:-))

顶部显示的 SQL 在某种程度上针对效率进行了优化。出于这个原因,我决定使用原生 SQL,因为我们到处都有子查询。

任何帮助表示赞赏。

0 投票
0 回答
2333 浏览

enums - QueryDSL,将枚举从 JPASQLQuery 投影到 DTO 时的非法参数类型

我们必须使用 JPASQLQueries 来处理在任意列和子查询上进行连接的复杂查询。一个这样的查询从数据库返回一个字符串,并将其投影到一个枚举到 DTO 中。当尝试为该特定值调用 DTO 上的设置器时,此映射因“非法参数类型”而失败。
映射到与 DTO 工作结构相同的实体。

这是我使用的查询:

尝试在 DTO (stateCode dito) 上设置 orderTypeCode 时查询失败。
这是实体:

和枚举:

和 DTO:

最后抛出堆栈跟踪:

现在有以下问题:

  1. 我们如何为投影中的某些列(即枚举)提供类型转换表达式?
  2. 将生成的实体元数据(来自 apt-maven-plugin)用于 JPASQL 是否可行?

任何帮助表示赞赏。

我还探索了各种其他变体,但效果并不好:

  1. 使用本机 SQL 元数据(来自 querydsl-maven-plugin)进行投影并没有太大变化,但揭示了额外的类型映射问题。
  2. 从本机 SQL 元数据中选择具有相同的行为。
  3. 投影到实体中是可行的,但这不是目的,因为我们希望直接填充 DTO(也使用合成值)。如果我们使用实体,那么我们必须在之后将实体复制到 DTO 中。

编辑:使用的版本:

QueryDSL:3.2.4
Spring:3.2.2.RELEASE
Hibernate:4.2.6.Final

我们要使用的最终查询应该是这样的(仅限 SQL):

0 投票
0 回答
1300 浏览

querydsl - QueryDSL:如何设置 CaseBuilder 以返回列而不是常量表达式

我想通过 JPASQLQuery API 设置 SQL 案例表达式,如下所示:
Oracle SQL 是:

并提供正确的结果。当我尝试设置 CaseBuilder() 时,我得到一个简单Expression的 ,然后不能再在 JPASQLQuery 中使用(至少我不能用 设置别名.as("someString"))。

元数据类如下所示(简称):

组查询如下所示:

CaseBuilder() 语句:

我想有一些方法可以在各种 CASE 替代项中返回不同的列,和/或可以在从 CaseBuilder() 返回的表达式上设置别名。任何帮助表示赞赏。

0 投票
1 回答
748 浏览

querydsl - QueryDSL:如何通过 querydsl-maven-plugin 应用类型映射

在从 querydsl-maven-plugin 生成的元数据类中,我遇到了关于将 DB 列类型映射到 JAVA 类型的问题。

我们有一个具有以下定义的 Oracle DB 列

它接受从 1 到 9 的整数。

现在元数据生成器将列类型规范映射到布尔值(恕我直言,无论如何这是对 DB 列的错误解释)。

是否有可能配置 maven 插件,以便我可以为某些表/列对或某些 DB 数据类型提供不同的类型映射?

虽然我可以使用单独的 JAVA 程序设置元数据生成,但这不是一个选项,因为我想保持我的构建保持原样。

QueryDSL 的版本是 3.2.4。

任何帮助表示赞赏。

编辑:另一种选择可能是在选择列表中完成了一些类型转换。

0 投票
2 回答
1442 浏览

c# - 如何将原生 SQL 查询结果映射到 NHibernate 中的自定义值类型列表?

我有一个名为的值类型FiscalYear,它本质上是一个整数的包装器。我也NHibernate.UserTypes.IUserType为它实现了。现在我可以将类型的属性FiscalYear直接映射到 SQL 类型,NHibernate 会自动转换它们。

一切正常。但现在我想执行原生 SQL 查询以从数据库中获取财政年度列表。这是当前代码:

可行,但我的问题是:由于我已经实现了IUserTypefor FiscalYear,是否可以将此代码简化为如下所示:

不幸的是,这不起作用。使用Transformers.AliasToBean也无济于事,因为FiscalYear它是一种值类型而不是实体。

我认为这确实应该很容易做到,但到目前为止我的所有尝试都失败了。我想我只是错过了什么?

0 投票
2 回答
528 浏览

abap - 原生 SQL 程序和 ALV 布局

我使用 from tCode = SE38 创建了一个程序,我使用的是 Native SQL。

这是我的代码:

一切运作良好。

现在我想将此报告添加到 ALV 布局中,我该怎么做?

0 投票
3 回答
2042 浏览

java - 如何在 Hibernate 的原生 SQL 中编写连接查询?

我得到这个例外请任何人帮助我

实际上我的疑问是我正在使用两个 pojo 类,但我的 Transformers.aliasToBean 只是一个类,它实际上需要两个类的东西才能在我的输出 jsp 页面中打印

提前致谢。

`

0 投票
1 回答
1209 浏览

java - 'SELECT' 附近的 SQLException 语法不正确

我想不通这个。

此查询在 sqlServer 中运行而没有错误:

将其转换为 @Formula :

更改NOW()并添加了指向 pojo Id 的链接:tjmm.MainMission_SID = MainMission_SID

任何人都知道我在公式中的错误在哪里?