Hibernate映射视图会生成联合主键在查询时,如果联合主键(其实不光是联合主键,单个的主键也是,如果为空,那么返回的整条结果都为空)里有一项值为null,则整个结果返回null。
"select ocreatetime createTimeA,rcreatetime createTimeB from orderinfo o left join refundinfo r on oorderno = rorderno"
我之前也遇到过类似的问题,就是getInt(“id”)总是报long无法转换 int 的错误。后来发现我同事用其他的数据库软件创建的数据时,把某个选项勾选了,我在navicat for mysql中查看时就发现,id这列有个“无符号”的选项被勾选了,我取消之后,getInt就正常了。
JPA中使用原生sql查询出的结果中每一条记录是object数组,如下所示
String sql = "select id,group_name from form_temp_type";
Query query = entityManagercreateNativeQuery(sql);
List<Object[]> list = querygetResultList();//最终的结果集是object数组
我们在使用的时候需要从数组中逐个取出,比较麻烦。很多情况下我们需要的是对象或者Map
String sql = "select id,group_name from form_temp_type";
Query query = entityManagercreateNativeQuery(sql);
queryunwrap(SQLQueryclass)setResultTransformer(TransformersALIAS_TO_ENTITY_MAP);
List<Map> list = querygetResultList();//这里的结果是Map,我们可以通过字段名称获取到相应的值
public static List findRelatives(Stringsql,Map<String,Object>params,EntityManagerentityManager,Class<>clazz){
Sessionsession=entityManagerunwrap(Sessionclass);
NativeQueryquery=sessioncreateNativeQuery(sql);
queryunwrap(NativeQueryImplclass)setResultTransformer(TransformersaliasToBean(clazz));
for(Stringkey:paramskeySet()){
Objectvalue=paramsget(key);
querysetParameter(key,value);
}
entityManagerclose();
returnquerygetResultList();
}
以上就是关于hibernate jpa不做映射查询,字段有空值就查不到数据全部的内容,包括:hibernate jpa不做映射查询,字段有空值就查不到数据、JPA本地查询 orderinfo表和refundinfo表都有createtime字段,但我用下面的语句查询,两个字段的结果一样、jpa查询mysql4 int字段返回long吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)