`

突遭 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,虽然难看点但是不失为一个好的提示方法,

 

分享到:
评论
2 楼 q821424508 2012-11-27  
java_bigniu 写道
在下面catch (Exception e) 后还在那一行报错  

没太明白你的意思。
不过我的意思是说,如果有异常,那么我捕获就可以了,接着我就可以处理了,你补给我异常,但是又不能保证数据库的数据就是存在的,这样运行时一定会有查询不到数据的情况,
如果项目部署了,那么一定会有运行出错的情况,那个时候你会很纠结,
1 楼 java_bigniu 2012-11-27  
在下面catch (Exception e) 后还在那一行报错  

相关推荐

    使用 SpringBoot + SpringDataJPa 设计通用的权限管理系统,适合管理系统快速开发迭代,可用于开发模板

    使用 SpringBoot + SpringDataJPa 设计通用的权限管理系统,适合管理系统快速开发迭代,可用于开发模板,项目经过测试,可完美运行! 使用 SpringBoot + SpringDataJPa 设计通用的权限管理系统,适合管理系统快速...

    jpa例子jpajpa

    **Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的对象-关系映射(ORM)。它提供了一种方式,让开发者可以用面向对象的编程模型来操作数据库,而无需直接编写SQL语句。JPA允许你在...

    JPA源文件/jpa学习

    **JPA(Java Persistence API)**是Java平台上的一个标准,用于管理关系数据库中的数据,它简化了在Java应用程序中存储、检索和管理对象的工作。JPA是Java EE和Java SE环境中的一种ORM(Object-Relational Mapping)...

    JPA教程,包括TOPLink JPA,Hibernate JPA,Open Jpa,jpa批注

    Hibernate JPA因其灵活性和广泛社区支持而受到欢迎,尤其是在处理复杂业务逻辑和非标准SQL需求时。 **3. OpenJPA** OpenJPA是由Apache软件基金会开发的开源JPA实现。它是一个轻量级、高性能的解决方案,设计目标是...

    JPA中文解释,JPA的API

    描述中提到"JPA的API非常简洁,但是描述很全面",这表明JPA设计时注重了易用性和完整性。尽管它的API接口数量相对较少,但涵盖了数据持久化的各个方面,包括实体管理、查询、事务控制等。例如,`EntityManager`是JPA...

    Pro JPA2 精通JPA2

    - **学习如何设计和实现持久化层**:使用JPA2进行实体建模,编写有效的JPQL查询,处理复杂的数据关系。 - **了解JPA2与Java EE 6的集成**:包括EJB、JSF和其他Java EE组件的结合使用。 ### 实践应用 通过本书的...

    Gemini JPA 介绍资料

    然而,这些特性也为传统的JPA应用带来了一定的复杂性,因为JPA默认是针对传统Java SE/EE应用设计的。 3. Gemini JPA是Eclipse开源项目的一部分,致力于开发OSGi企业规范中定义的服务的实现。这些服务包括Web容器、...

    Spring Data JPA 简化 JPA 开发

    Spring Data JPA 是 Spring Data 家族的一员,它的设计目标是进一步减少开发人员在数据访问层的工作量。通过 Spring Data JPA,开发者几乎无需编写任何 DAO(数据访问对象)实现,即可完成常见的 CRUD(创建、读取、...

    JPA 标注 JPA标签手册

    Java Persistence API (JPA) 是Java企业版5(Java EE 5)的一部分,与Enterprise JavaBeans(EJB)3.0规范一起,极大地简化了Java持久化。它提供了一种对象关系映射方法,允许您以标准、可移植的方式声明性地定义...

    spring注解+spring data jpa文档+JPA文档.rar

    "spring data jpa官方文档中文翻译"则提供了Spring Data JPA的详细指南,包括其设计原理、基本概念、使用方法和最佳实践。"JPA2.0官方文档"则深入讲解了JPA规范的各个方面,包括实体管理、查询、事务和并发控制等。 ...

    JPA

    理解并熟练掌握JPA的各种关系映射机制对于高效地设计和实现数据密集型应用程序至关重要。通过上述讨论,我们可以看到JPA如何简化了实体之间的关系处理,使得开发者能够更专注于业务逻辑而不是底层数据操作。

    jpa

    **JPA(Java Persistence API)**是Java平台上用于管理关系数据库的数据持久化标准API,它为应用程序提供了一种对象/关系映射工具,将关系数据库中的数据与Java类对象关联起来,使得开发者可以使用面向对象的方式来...

    Spring Data JPA中文文档[1.4.3]_springdatajpa_erlang_waitxpf_

    **Spring Data JPA** 是一个基于 **Java** 的开源框架,它是 **Spring Framework** 的一个模块,主要用于简化 **Java Persistence API (JPA)** 的使用。JPA 是 Java 平台上的一个标准,用于管理和持久化应用程序的...

    JPA Demo 简单的了解下jpa

    **JPA(Java Persistence API)简介** Java Persistence API(JPA)是Java平台上的一个标准,用于管理和持久化Java对象到关系数据库。它是Java EE和Java SE环境中处理对象关系映射(ORM)的一种规范,旨在简化...

    JPA 黎活明JPA视频代码

    **黎活明老师**是IT教育领域的知名人士,他的教学资源受到很多学习者的欢迎。他提供的**JPA视频课程**涵盖了JPA的基础到进阶内容,通过15个avi视频,深入浅出地讲解了JPA的用法和最佳实践。 这个压缩包包含的项目和...

    Spring Data JPA API(Spring Data JPA 开发文档).CHM

    Spring Data JPA API。 Spring Data JPA 开发文档。 官网 Spring Data JPA API。

    JPA (一)

    **Java 持久化 API(JPA)详解(一)** Java 持久化 API(Java Persistence API),简称 JPA,是 Java 平台上的一个标准,用于管理关系数据库中的数据。JPA 提供了一种面向对象的方式来操作数据库,使得开发人员...

    尚硅谷 jpa

    - **简单易用**:JPA 设计时考虑到了易用性,创建实体类非常直观且简单,只需要使用 `javax.persistence.Entity` 注解即可。 - **强大的查询能力**:JPA 支持 JPQL (Java Persistence Query Language),这是一种面向...

Global site tag (gtag.js) - Google Analytics