异常描述:从行读取的主键[在查询执行期间的DatabaseRecord被检测为空

Jag*_*nti -1 hibernate jpa eclipselink

Exception [EclipseLink-6044] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.QueryException
Run Code Online (Sandbox Code Playgroud)

异常描述:在执行查询期间从行[DatabaseRecord(=> 2)]读取的主键被检测为空.主键不能包含null.查询:ReadAllQuery(referenceClass = ResourceHistory sql = "SELECT count(1)FROM omm_logs.resource_history e其中e.user_id ='f6748e11-6a76-4448-9bf5-af4da5643542'和(e.datetime> ='2013-05-15 16 :29:24'或e.datetime <='2013-06-05 10:32:25'或e.service_code LIKE'%5%'或e.keyword LIKE'%1%'或e.resource_type LIKE'% 1%'或e.channel LIKE'%1%')")

Query cQry=em.createNativeQuery(query,ResourceHistory.class);
long count=(Long)cQry.getSingleResult();
Run Code Online (Sandbox Code Playgroud)

我正在使用netbeans 7.0.1,mysql 5.x.

Chr*_*ris 6

如果您只想要数据,请不要将实体类指定为creatNativeQuery方法的参数.这样做会强制JPA尝试从结果中构建该实体,这在实体数据不在其中构建时会产生异常.