【问题标题】:How to retrieve data from object in hibernate如何从休眠中的对象中检索数据
【发布时间】:2016-07-07 13:27:02
【问题描述】:

我想加入两个表: T1:身份证,姓名,电子邮件 T2:id,地址

加入我正在这样做:

String hql="select sd.name,tt.name from T1 sd,T2 tt where sd.id=tt.id";
            Query q=ss.createQuery(hql);
            List l2=q.list();
            Object o1=l2.get(0);
            System.out.println("-----------");
            System.out.println(o1.toString());
            System.out.println("-----------");

它正在返回对象,但不知道如何检索值,因为返回的对象不是实体对象。

【问题讨论】:

  • 也许这回答了你的问题stackoverflow.com/questions/13607337/…
  • 我确信有更好、更自动化的方法可以做到这一点,但正如所写的那样,要弄清楚你实际问的是什么有点困难。
  • @Rubio:谢谢伙计!很有帮助
  • @Rake 不客气 :-)

标签: java hibernate spring-mvc


【解决方案1】:

每个结果都是一个对象数组。数组的大小是选择列

List l2=q.list();
Object[] o1=(Object[])l2.get(0);//The size is should be 2
System.out.println(o1[0]);
System.out.println(o1[1]);

【讨论】:

  • 谢谢...这就像 RubioRic 的回答。
【解决方案2】:

您必须将List 中的Object 转换为您的特定类型,Hibernate 不知道该类型。见What is the "proper" way to cast Hibernate Query.list() to List<Type>?Hibernate query for selecting multiple values

【讨论】:

    【解决方案3】:

    它将返回Object 中的array,您需要根据您的选择值(如名称等)对其进行类型转换。

    List<Object[]> values= (List<Object[]>)q.list();
         for(Object[] val: values){
    
    ....
    //your specific type values
    }
    

    【讨论】:

    • 谢谢...这就像 RubioRic 的回答
    【解决方案4】:

    另一种选择是使用您的联接表创建一个视图,然后基于该视图创建休眠实体

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多