用HQL查询, 比如From Person p , 这样就会把Person类中的关联的Organization类查出来.(Organization是Person中的一个引用), 如果用了select去指定列名, 那返回的又不是一个Person的List.而是Object的List. 怎么设置才能既不把Organization对象查出来,又让它返回一个Person的List?

解决方案 »

  1.   

    Person这个类本身就是由它自身属性和Organization组成的。如果查出来的东西没有Organization,那Person里的Organization怎么?空值?
    new一个Person,然后把Object的值对应赋给Person大概也就可以了。
    要不你定义的时候就不要用一对多关联,直接用数据库列,那倒是简单了。
      

  2.   

    可以用连接查询,直接用join fetchselect person From Person join fetch person.organization
      

  3.   

    如果是查部分属性的话   返回的是 Object 数组的
      

  4.   

    2楼的是不行的,  用DEBUG试了, 还是能被查出来, 这个问题郁闷了好久, 一直就用native sql 或 hql来解决. 我的实体是用JPA写的, 在ONE-MANY的地方也设了LAZY, 还是不行呀...
      

  5.   

    如果没有去改默认惰性载入的话, 一对多,多对一的关联不会被查询出来, 只有当你访问的时候才会。
    你用debug的时候,其实是调用了getOrganization(),其实是Debug的访问导致进行了查询