突遭 JPA的设计 欢迎补充

之前没有用过JPA,现在的项目开始用JPA了,总得有个学习的过程是吧,什么命名查询等,都得一步一步来,

本来需要彻底的学习一下,还买本书,不过到现在还没有看过,

 

今天写程序,遇到一个问题,

不吐不快,

 

里面有道了下面一段代码 

 

 写道
Long oriInfoId = null;
sql = "SELECT info_id FROM im_oriinfo_info WHERE issue_infoid =? ";
Query query = this.emr.createNativeQuery(sql).setParameter(1, infoId);
Object obj =query.getSingleResult();
if(null!=obj){
oriInfoId = Long.parseLong(obj.toString());
}
return oriInfoId;

 

 大家看下 ,我自认为没什么问题,逻辑处理的还可以,

 

Object obj =query.getSingleResult();

这一行的时候报错了

javax.persistence.NoResultException: No entity found for query

 我就郁闷了,API设置成这样

 

你说没有查询到实体,要是我设计的话,当然没有查询到的话,我返回空,这个没有疑问吧,

你不返回空,也就算了,给一个异常什么的,也可以,

异常是给了, 是尼玛运行时异常,写代码的时候IDE一定不会提示你try catch 

还要我自己手工写,但是我不能每次查询的时候都写try catch吧

 

这样代码看这也不爽,你要是可能抛出异常给个throwable异常也可以啊,非要到出问题了你才提示,

这不是找问题吗 

 

给人建议

1.如果没有结果返回,可返回null,

2.其次如果不要返回null的话,可以考虑必须捕获的异常提醒方式,这样的话,IDE一般都会提示try catch,虽然难看点但是不失为一个好的提示方法,

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值