我做了一个简单的java web, 利用了JPA。
我对一个视图做了jpa reverse工程。
之后我在action对他进行查询,查询语句是:
rs=dao.findAll();
系统报错:
[TopLink Warning]: 2011.06.16 10:57:32.078--UnitOfWork(31709196)--Exception [TOPLINK-6044] (Oracle TopLink Essentials - 2.0 (Build b40-rc (03/21/2007))): oracle.toplink.essentials.exceptions.QueryException
Exception Description: The primary key read from the row [DatabaseRecord(
中间这显示的是表的数据
YKMES.AQC0010C_REF.GRIND_POS => null)] during the execution of the query was detected to be null. Primary keys must not contain null.
Query: ReportQuery(views.Aqc0010cRef)。
为了找到问题,我又对一个没有主键的表做jpa reverse,同样做rs=dao.findAll();
操作,没问题呢。
请高手指点。
难倒是视图不能进行jpa reverse?
我对一个视图做了jpa reverse工程。
之后我在action对他进行查询,查询语句是:
rs=dao.findAll();
系统报错:
[TopLink Warning]: 2011.06.16 10:57:32.078--UnitOfWork(31709196)--Exception [TOPLINK-6044] (Oracle TopLink Essentials - 2.0 (Build b40-rc (03/21/2007))): oracle.toplink.essentials.exceptions.QueryException
Exception Description: The primary key read from the row [DatabaseRecord(
中间这显示的是表的数据
YKMES.AQC0010C_REF.GRIND_POS => null)] during the execution of the query was detected to be null. Primary keys must not contain null.
Query: ReportQuery(views.Aqc0010cRef)。
为了找到问题,我又对一个没有主键的表做jpa reverse,同样做rs=dao.findAll();
操作,没问题呢。
请高手指点。
难倒是视图不能进行jpa reverse?
有一个表,只有一个字段,我想查出来,然后再显示,通过调试,能查询出来,利用网上的代码,就是不能显示,好郁闷!有人救救我吗?
代码如下:
package action;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;import javax.persistence.EntityManager;
import javax.persistence.Query;import entities.EntityManagerHelper;
import entities.IdbqcPface;public class MutilTablesQuery {
private static List aqc0010c_s=new ArrayList();
private static EntityManager getEntityManager() {
return EntityManagerHelper.getEntityManager();
}
MutilTablesQuery(){
}
public String getRS()throws Exception{
String sqlstr=" select aa";
sqlstr+=" from IdbqcPface aa where aa.plateId like '20091230%' ";
Query query=getEntityManager().createQuery(sqlstr);
aqc0010c_s=query.getResultList();
System.out.println(aqc0010c_s.size());
Iterator iterator1 = aqc0010c_s.iterator();
System.out.println("has read datas!");
while (iterator1.hasNext()) {
System.out.println("has began to loop!");
Object[] obj = (Object[]) iterator1.next();
//Object[] obj = (Object[]) iterator1.next();
System.out.println("has began to loop2!");
IdbqcPface IdbqcPface_t = (IdbqcPface)obj[0];
System.out.println(IdbqcPface_t.getPlateId());
}
return "success";
} /**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
MutilTablesQuery x= new MutilTablesQuery();
String s=x.getRS(); }}
通过跟踪调试,发现就是Object[] obj = (Object[]) iterator1.next();
过不去,哭啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!