SQL查询仅返回SELECT语句中第一列的值

兰迪

如果我在DBVisualizer中运行以下查询,它将返回一行长值(这是预期的正确结果),并重复相同的列(来自Oracle 11数据库中的同一表)。因此,例如,如果其中3列是ID *,** FIRST_NAMELAST NAME,则其外观应类似于以下内容(我为粗略的“关系图”表示歉意):

+-----+------------+-----------+----+------------+-----------+
| ID  | FIRST_NAME | LAST_NAME | ID | FIRST_NAME | LAST_NAME |
| 2   | John       | Doe       | 3  | Jane       | Doe       |

但是,如果我在Java Web应用程序(使用Hibernate 3.0,JPA 2.1)中运行相同的本机查询,并且将Entity类映射到上述Oracle 11数据库,则使用以下代码段:

List<ForeignParty> queryResult = null;
    String sqlQuery = "SELECT f.*, p.POLICY_1_NUM, p.TOTAL_PAYOUT_AMT, f1.*, f2.*, f3.*, f4.* " +
                      "FROM FOREIGN_PARTY f " +
                      "LEFT JOIN POLICY_PAYMENT p ON f.FOREIGN_PARTY_ID = p.FOREIGN_PARTY_ID " +
                      "LEFT JOIN FOREIGN_PARTY f1 ON f.RELATED_PARTY_ID1 = f1.FOREIGN_PARTY_ID " +
                      "LEFT JOIN FOREIGN_PARTY f2 ON f.RELATED_PARTY_ID2 = f2.FOREIGN_PARTY_ID " +
                      "LEFT JOIN FOREIGN_PARTY f3 ON f.RELATED_PARTY_ID3 = f3.FOREIGN_PARTY_ID " +
                      "LEFT JOIN FOREIGN_PARTY f4 ON f.RELATED_PARTY_ID4 = f4.FOREIGN_PARTY_ID " +
                      "WHERE " +
                      "f.PARTY_TYPE_ID = '2' " +
                      "AND f.SOURCE_SYSTEM = :sourceSystem " +
                      "AND f.SOURCE_CLIENT_ID = :sourceClientId";
    query = emFatca.createNativeQuery(sqlQuery, ForeignParty.class);
    query.setParameter("sourceSystem", sourceSystem);
    query.setParameter("sourceClientId", sourceClientId);
    try {
        queryResult = query.getResultList();
        //This statement ensures that the PolicyPayment object does not go out of session scope
        for (ForeignParty fp : queryResult) {
            fp.getPolicyPaymentCollection().size();
        } 
    } catch (NoResultException nre) {
        nre.getMessage();
    }
    return queryResult;

...仅返回f指定的所有列的值,即SELECT语句中的第一项我通过暂时移动f4进行了验证在该项目的SELECT语句是在该声明的第一个项目,然后看到的是,在输出的值相匹配那些特定的别名。我想知道这是否与以下事实有关:这将在一条记录或行中而不是单独的记录中返回多个具有相同名称和相同实体的列?我是否需要使用类似SqlResultSetMapping之类的方法来为结果的每次迭代分别设置别名?我认为这将需要大量工作,因为将要定义许多列/别名。任何帮助将不胜感激。谢谢!

弗拉德·米哈尔西娅(Vlad Mihalcea)

createNativeQuery()需要一个实体类,而不是一个DTO类。如果要映射到非实体的本地查询结果,你需要使用@SqlResultSetMapping一个@ConstructorResult

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django mysql查询仅返回第一列

来自分类Dev

SQL错误子查询必须仅返回一列

来自分类Dev

SELECT *和通过在Select语句中指定每一列/联合查询返回所有列之间的区别是什么?

来自分类Dev

如何使用select语句中的一列值显示联接中的列?

来自分类Dev

如何在SQL select语句中基于另一列添加计算列

来自分类Dev

仅返回SQLite Select语句中的最后一个值

来自分类Dev

仅返回SQLite Select语句中的Last值

来自分类Dev

SQL子查询返回一列的MIN和另一列的对应值

来自分类Dev

R:ddply仅返回矩阵列的第一列

来自分类Dev

如何设置列以在select语句中返回值

来自分类Dev

Yii2:ActiveQuery可以返回键为SQL查询第一列的数组吗?

来自分类Dev

尝试运行sql脚本时,子查询必须仅返回一列错误

来自分类Dev

sql查询以再次获得case语句中的列值

来自分类Dev

Mutate 仅适用于第一列的值

来自分类Dev

如何在Sql中的select语句中替换列值?

来自分类Dev

如何在Sql中的select语句中替换列值?

来自分类Dev

Laravel LeftJoin 从第一列 (mysql) 返回重复值

来自分类Dev

SQL语句应按“最后一列”然后“第一列”排序

来自分类Dev

SQL查询以选择对我的第一列通用的记录

来自分类Dev

在 select 语句中将两列相加成为一列

来自分类Dev

如何在单个语句中多次查询kdb表中的同一列?

来自分类Dev

SQL SELECT查询,使用等于或不等于的一列值组合匹配的行

来自分类Dev

select语句中的记录重复,但复杂联接中的一列除外

来自分类Dev

在CASE语句中返回多个结果时,仅更新一次行值

来自分类Dev

将一列“行”转换为SQL Server查询中的仅一列

来自分类Dev

在SQL Select语句中读取XML值

来自分类Dev

在SQL Select语句中读取XML值

来自分类Dev

SQL,仅返回在至少一列中找到至少一个具有相同值的条目的行

来自分类Dev

SQL,仅返回在至少一列中找到至少一个具有相同值的条目的行

Related 相关文章

  1. 1

    Django mysql查询仅返回第一列

  2. 2

    SQL错误子查询必须仅返回一列

  3. 3

    SELECT *和通过在Select语句中指定每一列/联合查询返回所有列之间的区别是什么?

  4. 4

    如何使用select语句中的一列值显示联接中的列?

  5. 5

    如何在SQL select语句中基于另一列添加计算列

  6. 6

    仅返回SQLite Select语句中的最后一个值

  7. 7

    仅返回SQLite Select语句中的Last值

  8. 8

    SQL子查询返回一列的MIN和另一列的对应值

  9. 9

    R:ddply仅返回矩阵列的第一列

  10. 10

    如何设置列以在select语句中返回值

  11. 11

    Yii2:ActiveQuery可以返回键为SQL查询第一列的数组吗?

  12. 12

    尝试运行sql脚本时,子查询必须仅返回一列错误

  13. 13

    sql查询以再次获得case语句中的列值

  14. 14

    Mutate 仅适用于第一列的值

  15. 15

    如何在Sql中的select语句中替换列值?

  16. 16

    如何在Sql中的select语句中替换列值?

  17. 17

    Laravel LeftJoin 从第一列 (mysql) 返回重复值

  18. 18

    SQL语句应按“最后一列”然后“第一列”排序

  19. 19

    SQL查询以选择对我的第一列通用的记录

  20. 20

    在 select 语句中将两列相加成为一列

  21. 21

    如何在单个语句中多次查询kdb表中的同一列?

  22. 22

    SQL SELECT查询,使用等于或不等于的一列值组合匹配的行

  23. 23

    select语句中的记录重复,但复杂联接中的一列除外

  24. 24

    在CASE语句中返回多个结果时,仅更新一次行值

  25. 25

    将一列“行”转换为SQL Server查询中的仅一列

  26. 26

    在SQL Select语句中读取XML值

  27. 27

    在SQL Select语句中读取XML值

  28. 28

    SQL,仅返回在至少一列中找到至少一个具有相同值的条目的行

  29. 29

    SQL,仅返回在至少一列中找到至少一个具有相同值的条目的行

热门标签

归档