JPA多表查询取到个数但是值是null的
利用jpa多表查询时发现,
1,在使用下面红字部分(new com.phonebook.dao.dto.kkk)构造体的时候,取到的的list的个数是跟检索结果一致,但是内容都是null的
2,在不使用下面红字部分(new com.phonebook.dao.dto.kkk)构造体的时候,由于取回的getResultList里每一个项目都是
object,到了logic层发现取不出数据。虽然DAO层里该方法定义成了 List<kkk>,程序执行也没报错
但是到了logic层取数据时候,发生了cast error
请问各位高手,怎么才能把多表查询结果取到logic层呢,
我定义的new com.phonebook.dao.dto.kkk构造体有什么问题么,为什么sql语句可以返回项目个数但是值是null?
=========================以下是jpa多表查询时的代码,红色部分为有问题部分============
public List<kkk> searchPhoneNo(String aaa) {
String ttt = null;
List<kkk> result = null;
String jpql = "select new com.phonebook.dao.dto.kkk(u.insid,u.mapUpdateId,t.status,t.id.allAreaId) from AllAreaFul t,UserInfo u where t.id.insid = u.insid ";
Query query = em.createQuery(jpql);
result = query.getResultList();
return result;
}
====================以下是kkk这个类的定义==============================
package com.phonebook.dao.dto;
import java.io.Serializable;
/**
* create-date 04/05/2014.
* @author 于 強
*/
public class kkk implements Serializable {
private static final long serialVersionUID = 1L;
private String insid;
private String mapUpdateId;
private String status;
private String allAreaId;
public kkk(String insid,String mapUpdateId,String allAreaId,String status) {
insid = this.insid;
mapUpdateId = this.mapUpdateId;
allAreaId = this.allAreaId;
status = this.status;
}
public void setInsid(String insid) {
this.insid = insid;
}
public String getInsid() {
return this.insid;
}
public void setMapUpdateId(String mapUpdateId) {
this.mapUpdateId = mapUpdateId;
}
public String getMapUpdateId() {
return this.mapUpdateId;
}
public void setStatus(String status) {
this.status = status;
}
public String getStatus() {
return this.status;
}
public void setAllAreaId(String allAreaId) {
this.allAreaId = allAreaId;
}
public String getAllAreaId() {
return this.allAreaId;
}
}