qq_24913711 2017-12-04 07:08 采纳率: 50%
浏览 3570
已采纳

hibernate中执行hql语句,只查询部分字段得到的结果集也只有那一部分字段的属性

如何在hibernate中执行hql语句,只查询部分字段得到的结果集也只有那一部分字段的属性,我试过select new Game(autoid,name,pinyin,initial,appkey,type) from Game
并且在对应的实体当中也创建了构造方法,DEBUG进去也确实是执行了

  1. public Game(Integer autoid, String name, String pinyin, String initial,
  2. String appkey, String type) {
  3. this.autoid = autoid;
  4. this.name = name;
  5. this.pinyin = pinyin;
  6. this.initial = initial;
  7. this.appkey = appkey;
  8. this.type = type;
  9. }

但是我最后的结果集,还是把其他那一堆的字段全带上了,只不过没赋值而已,怎样才能让他得到的结果集里没有别的乱七八糟的属性,只有我想要的字段的?

  • 写回答

13条回答 默认 最新

  • 浪里渔夫 2017-12-04 17:00
    关注

    类Game里的其他属性是没办法去掉的,因为你New这个Game对象时,那些属性就已经存在了,只不过hibernate根据hql查询的结果对部分属性进行了赋值。
    如果你非要得到只包含部分属性的一个实体对象,你可以创建一个新的类,例如Game2,这个Game2里只包含了你想要的属性,然后让Hibernate映射下这个 Game2。
    当然这样操作是很麻烦的,如果我哪天需要别的属性了,还要改这个类;或者我需要其他部分属性组合的实体的话,还要再创建一个类。所以你最好是用HashMap来解决这种变化的需求。

    另外,你只要包含这些属性的实体对象是干什么用呢?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(12条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 centos7.6进不去系统,卡在数字7界面
  • ¥15 Tensorflow采用interpreter.allocate_tensors()分配内存出现ValueError: vector too long报错
  • ¥15 使用CGenFF在线生成血红素辅基拓扑结构遇到问题
  • ¥15 在fragment使用okhttp同步上传文件,能不能在fragment销毁后还可以继续上传文件?
  • ¥20 matlab代码实现可达矩阵形成骨骼矩阵
  • ¥15 关于地板的木纹和图库中的匹配的
  • ¥30 机器学习预测疾病模型流程疑问
  • ¥50 2048Python实现
  • ¥15 使用ads进行低噪放仿真没有结果且不报错
  • ¥15 关于#python#的问题:有偿求一个千寻框架找书机器人插件
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部