Spring @ResponseBody 返回 JSON,但缺少键

2023-12-01

我正在以 JSON 格式返回 SQL 查询的结果。结果正常,但缺少键(查询中指定的列)。我是否必须将类与查询关联才能获取键名称?我不认为这是 Jackson 映射,因为当我显式使用它时(对象映射器而不是让 Spring 在 @ResponseBody 中处理它),我得到了相同的结果。

Spring 3.2.1,Hibernate 3.6。使用 Hibernate createSQLQuery 从 5 个表获取结果。

List<EvalMasterEvalDetail> details = session.createSQLQuery(query).list();

结果看起来像:

[[61,"Conference","CME Conference"],[42,"Lecture","fellow lecture"]]

应该

[[{"detail_id":61, "event_type":"Conference", "event_name":"CME Conference"}],
[{"detail_id":42, "event_type":"Lecture", "event_name":"fellow lecture"}]]

默认情况下,Hibernate 中的 SQL 查询返回标量值列表(对于select)或列表Object[](对于多列)。

你遇到的是后一种情况。List<EvalMasterEvalDetail>在这种情况下并不意味着列表包含的实例EvalMasterEvalDetail, 因为list()返回一个原始的List,这样您就可以进行未经检查的转换。

如果结果的每个元组代表一个映射实体(或多个映射实体),则可以使用addEntity() and addJoin()将它们转换为实体。

如果结果的每个元组代表任意(非映射)类,您可以使用ResultTransformer(例如AliasToBeanResultTransformer).

您还可以转换Object[]手动定位对象(在复杂情况下很有用)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring @ResponseBody 返回 JSON,但缺少键 的相关文章

随机推荐

  • 是否可以在 MVC 3 中打开/关闭验证数据注释?

    我有两个单独的视图访问同一模型 当我将验证器数据注释放在模型上时 它会按照广告中的方式工作 并且如果留空或不在范围内 则会阻止提交数据 对于两个视图 但是 我有一个视图应该能够允许为属性保存空值或空值 而另一个视图需要要求输入或选择信息才能
  • jQuery 推栈

    我需要一些帮助才能理解pushStack 这里我举了一个例子 使用它和不使用它的结果是一样的http jsfiddle net Bz5n9 2 所以我想我真的不明白它是用来做什么的 Thanks 您当前正在添加到集合中 将一个新集合推送到堆
  • 在 JavaScript 中更改文本框文本

    我允许用户使用两个文本框之一来搜索数据库 一个是 ID 字段 一个是自由文本字段 顺便说一句 我正在使用 ASP NET 和 C 无论如何 我需要做的就是拥有它 这样当用户单击其中一个文本框时 另一个文本框文本就会被删除 因此另一个文本框是
  • CORE DATA objectId 不断变化

    我将一些数据导出到 XML 文件并放入远程 FTP 服务器中 我必须用唯一的属性来标识每个对象 这并不重要 但必须始终持久 gt 它永远不会改变 我不想创建唯一的属性 序列 序列等 我正在使用 objectID 但每次使用它时都会获得一个新
  • HttpResponseCache 在 Android Lollipop 中不起作用

    我一直在我的应用程序中成功使用 HttpResponseCache 但是当我的手机更新到 Lollipop 时 我意识到 HttpResponseCache 现在永远不会被 命中 总是执行网络请求 我已经确认 Lollipop 之前的 An
  • 如何在R光栅中获取网格周围的等高线?

    R中有一个栅格 如何绘制等高线around网格 不连接中心或其他任何东西 真正遵循网格的边界 具有某些值 或由某些掩码标识 以下示例显示如何获取值 0 6 的区域周围的等高线 如何执行相同操作 但线条遵循网格边界 该函数应该返回一个对象以添
  • 使用 Money gem 的表单选择设置货币

    我已经在这方面工作了好几个小时 但我无法弄清楚这一点 我愿意让用户根据他在表单中填写的价格选择相应的货币 我正在使用 Money Gem https github com RubyMoney money 所有值均已正确设置 但货币仅设置为其
  • 使用 JavaScript 重新加载页面的首选方法? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 您更喜欢哪种方式重新加载当前页面 使用按钮 1
  • 在 FlatList 上 React Native“keyboardDismissMode”

    是否有可能防止键盘在滚动时消失FlatList 使用 ScrollView 时 将属性 keyboardDismissMode 设置为 none 是解决此问题的方法 但这对我在 FlatList 中不起作用 我在一个自制组件 即 Stack
  • 如何删除由 start/end Document 方法添加的 StaxEventItemWriter 标记?

    如何删除由开始 结束文档方法添加的 StaxEventItemWriter 标记 当我生成 XML 文件时 它是默认添加的 所以请任何人告诉我如何删除默认根标签 Ex
  • dplyr 创建因子水平的合计百分比

    如何使用 dplyr 为每个州创建因子变量水平的比例 例如 我想添加一个变量来指示数据框中每个州内女性的百分比 gen data state lt rep c rep Idaho 10 rep Maine 10 2 student id l
  • size_t 和 unsigned int 之间的区别?

    我很困惑size t 我在互联网上搜索过 到处都提到了这一点size t是无符号类型 因此它只能表示非负值 我的第一个问题是 如果它只用来表示非负值 为什么我们不使用unsigned int代替size t 我的第二个问题是 是size t
  • SqlDependency.Start(connectionString) 每次都返回 false

    我设置了访问数据库的权限 use DbName GRANT SUBSCRIBE QUERY NOTIFICATIONS TO dbuser use DbName GRANT SELECT ON OBJECT schema tableName
  • w3c document.forms[0].fieldname 等效项

    我一直在使用 document forms 0 fieldname value 从表单中获取 javascript 中的值 但我想使用名称来引用该字段而不是 0 这些天以来等效的是什么
  • 在 MarkLogic 8 中调用具有来自其余端点的依赖项的 xquery 库

    我们正在从 MarkLogic 6 升级到 8 并且在调用库模块时遇到了一些问题 我们有 xquery 库模块 可以从自定义 REST 扩展和非 REST xquery 调用 马克逻辑公司文档表示 REST 端点可以使用通过新 ext 端点
  • 程序化表单提交

    我想抓取网页的内容 内容是在该网站上填写并提交表格后生成的 我已经阅读了如何抓取最终结果内容 网页 但如何以编程方式提交表单 我正在使用 python 并读到我可能需要获取带有表单的原始网页 解析它 获取表单参数 然后执行 X 有人能指出我
  • 如何在应用程序中将粤语设置为语音搜索语言?

    我当前的代码在使用 ZH ISO 代码表示普通话时工作正常 但不适用于粤语 这是下面的代码 Intent i new Intent RecognizerIntent ACTION RECOGNIZE SPEECH String myLang
  • 无法在 Javascript 中动态添加项目到 Owl Carousel

    我正在尝试动态地将项目添加到猫头鹰旋转木马 我是这样做的 HTML div class owl carousel lesson carousel div class item item logo div class product item
  • SpringBoot 中的 javax.validation.constraints.Email

    我有一个经过此验证的 bean Email message Email is not valid regexp a z0 9 a z0 9 x01 x08 x0b x0c x0e x1f x21 x23 x5b x5d x7f x01 x0
  • Spring @ResponseBody 返回 JSON,但缺少键

    我正在以 JSON 格式返回 SQL 查询的结果 结果正常 但缺少键 查询中指定的列 我是否必须将类与查询关联才能获取键名称 我不认为这是 Jackson 映射 因为当我显式使用它时 对象映射器而不是让 Spring 在 ResponseB