hibernate jpa不做映射查询,字段有空值就查不到数据

hibernate jpa不做映射查询,字段有空值就查不到数据,第1张

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吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9631902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存