可以!因为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]转化成不同的类型取得
可以使用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;
你的意思是用native sql吧
我是说用EJB QL。。不是用 Natvie SQL
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]转化成不同的类型取得
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;