hibernate no key for value

最近用 ssh 框架 写的 java 代码。

中有一个保存方法,需要先去不同的表中得到数据 去对比之后 ,正确 再保存。

在一个 service 方法中。spring事务配置中 是 一个 service 一个事务。

调用了 截个 dao。然后取数据,后面验证通过之后 保存。

一直报错: no key for value 。。。

找了很多资料,分析自己的代码好久 ,最好 得到一个结论,网上也有,但是当时没有看懂,自己代码里面 存在 hibernate 的 session 去取数据,保存也是用 的 hibernate的,但是有一个dao取数据 用的 jdbc 方法:

『一个取数据很方便的 方法:但是现在知道这种写法不是 hibernate,而是jdbc支持的。

        Session session = this.getHibernateTemplate().getSessionFactory().openSession();
        Query query = session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(ExportPointDto.class));
        @SuppressWarnings("unchecked")
        List<ExportPointDto> list = query.list();
        session.close();
        if (!list.isEmpty()) {
            return list;
        }
        return null;

将一个sql查到的语句用java对象封装,注意的是 对象里面的字段和 sql 中的 字段名(别名)一致


,然后 引起了冲突,(用hibernate的时候一会用datasource的事物(transaction)一会用hibernate的事务 [网上百度的 ])。

所以在 一个 service (一个事务中) 只用一种,那样才能让jvm 识别吧。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值