sql语句可以关联查询
比如:
select a.code,b.name from a,b where a.code = b.code在JPA的EJB QL里也可以这样做吗。。?如果可以的话。。怎么把查询结果映射成一个对象?

解决方案 »

  1.   

    可以查的 ,但是返回的不是对象 应该是个object数组吧   你自己再转化一下 就行了
      

  2.   


    你的意思是用native sql吧
    我是说用EJB QL。。不是用 Natvie SQL
      

  3.   

    可以!因为A和B是两个不用的实体对象,所以查询结果肯定不能映射成一个对象了。
    Query query=entityManager.createQuery("select a.code,b.name from A as a, B as b where a.code = b.code");
    List list=query.getResultList();
    Object[] rows=list.get(0);//我们可以这样取值。
    然后想得到具体某行的属性,再通过rows[index]转化成不同的类型取得
      

  4.   

    可以使用EJB QL中的join语句,
    SELECT DISTINCT o FROM Order AS o JOIN o.lineItems AS l WHERE l.shipped = FALSE
    对于你的例子,你可以试试:
    SELECT a FROM tablea AS a JOIN a.b AS ab WHERE ab.code = a.code;