`

如何在JPA的po类中调用存储过程和函数

    博客分类:
  • JPA
 
阅读更多

 

转载

 

在项目开发中用到了JPA规范,并在po类中使用了存储过程,这种资料在网上很容易找到,所以很快就跑通了,代码如下:

 

 @Entity

 @Table(name = "USER", schema = "MOBILE", uniqueConstraints = {

         @UniqueConstraint(columnNames = { "LOGINID" }),

         @UniqueConstraint(columnNames = { "USERACCOUNT" }) })

 @NamedNativeQuery(name = "addUser", query = "{call addUser(:pPortalID,:ploginid,:ploginpasswd,:pSelfQuiz,:pSelfAnswer,:pUserEmail,:pUserAccount,:pUserPin)}", hints = { @QueryHint(name = "org.hibernate.callable", value = "true") }, resultClass = User.class)

 public class User implements java.io.Serializable {

 

     private static final long serialVersionUID = 5325039036880950119L;

     private String userid;

     private String loginid;

     private String passwd;

        //省略若干代码

}

    但是后来却要求将addUser改成了函数,所以也要将po类中的调用修改。起初我以为很简单,数据库中的存储过程和函数差不多,不用修改直接调用即可。但是事实却不像我想得那样,错误百出,我上网查了很多资料,但是没有能给出答案的,后来才知道只要修改一个地方就可以获得想要的功能,郁闷!

 

    下面是修改后的代码:

 

 @Entity

 @Table(name = "USER", schema = "MOBILE", uniqueConstraints = {

        @UniqueConstraint(columnNames = { "LOGINID" }),

        @UniqueConstraint(columnNames = { "USERACCOUNT" }) })

 @NamedNativeQuery(name = "addUser", query = "{?=call addUser(:pPortalID,:ploginid,:ploginpasswd,:pSelfQuiz,:pSelfAnswer,:pUserEmail,:pUserAccount,:pUserPin)}", hints = { @QueryHint(name = "org.hibernate.callable", value = "true") }, resultClass = User.class)

 public class User implements java.io.Serializable {

 

     private static final long serialVersionUID = 5325039036880950119L;

     private String userid;

     private String loginid;

     private String passwd;

        //省略若干代码

}

    请注意call addUser语句,存储过程是直接调用,而调用函数则是在前面加?=.这可是我几天几夜不休得出的结果,拿出来与大家分享,希望有需要的朋友不要走我的弯路!

 

分享到:
评论

相关推荐

    EJB3JPA调用原生SQL和函数存储过程[归类].pdf

    本篇主要探讨如何在EJB3与JPA环境中调用原生SQL查询以及如何创建和使用Oracle的存储过程。 1. EJB3与JPA调用原生SQL EJB3引入了JPA作为标准的数据持久化框架,允许开发者使用JPQL(Java Persistence Query ...

    Spring Data JPA调用存储过程实例代码

    总之,Spring Data JPA 提供了一种简洁的方式来调用数据库的存储过程,使得在Java应用中使用存储过程变得直观和易于管理。通过定义Repository接口和注解,我们可以轻松地在业务逻辑中集成存储过程,而无需关心底层的...

    EJB调用存储过程源码

    在这个例子中,`myProcedure`是存储过程的名称,`param1`和`param2`是传递给存储过程的参数。`setParameter()`方法用来设置这些参数的值。 4. **返回结果**: 如果存储过程有返回值,你可以通过设置查询结果类型...

    EJB3.0实例教程如何调用存储过程.doc

    在EJB3.0中,开发人员可以直接通过EntityManager来操作数据库,包括调用存储过程。存储过程是数据库中预编译的SQL语句集合,可以提高性能、封装复杂逻辑以及提供更好的安全性。 调用存储过程的方法主要依赖于...

    Java中调用SQL Server存储过程详解

    Java中调用SQL Server存储过程是一项常见的任务,特别是在开发企业级应用时,因为存储过程能够封装复杂的数据库逻辑,提高性能并降低网络流量。本篇文章详细介绍了如何通过Java调用SQL Server存储过程,涵盖了几种...

    SpringData框架中的JPA工具类

    SpringData框架中使用的JPA工具类.模板代码,解决实体管理器工厂的浪费资源和耗时问题.第一次访问getEntityManager方法:经过静态代码块创建一个factory对象,再调用方法创建一个EntityManager对象,第二次方法...

    Spring Data JPA中文文档[1.4.3].zip

    7. **存储过程**:Spring Data JPA也支持调用数据库存储过程,并将其结果转换为Java对象。 8. **JPA实体**:学习如何定义实体类,使用`@Entity`, `@Table`, `@Id`, `@GeneratedValue`等注解,以及如何处理关系(如`...

    jpa例子jpajpa

    JPA允许你在Java应用程序中以对象的形式处理数据,这些对象可以自动转换为数据库中的记录。 在JPA的例子中,我们通常会涉及以下几个核心概念: 1. **实体(Entity)**: 实体是与数据库表相对应的Java类。它们通常...

    JPA中文解释,JPA的API

    它简化了在Java应用程序中存储、检索和管理数据的过程,是Enterprise JavaBeans(EJB)的一部分,也是Spring框架中的一个重要组件。JPA通过提供一组接口和注解,允许开发者以声明式的方式处理数据操作,从而减少了对...

    Spring Data JPA中文文档[1.4.3]_springdatajpa_erlang_waitxpf_

    **Spring Data JPA** 是一个基于 **Java** 的开源框架,它是 **Spring Framework** 的一个模块,主要用于简化 **Java Persistence...在学习过程中,结合实际编程实践,能更好地理解和掌握 Spring Data JPA 的强大功能。

    springboot + jpa 批量存储示例

    在本文中,我们将深入探讨如何使用Spring Boot与Java Persistence API (JPA) 实现批量存储操作。Spring Boot简化了设置和配置,而JPA作为Java的ORM(对象关系映射)框架,允许开发者以面向对象的方式操作数据库。...

    springboot同时整合JPA和mybatis的demo

    本示例"springboot同时整合JPA和mybatis的demo"旨在演示如何在一个项目中同时使用Spring Boot与两种ORM(对象关系映射)框架:JPA(Java Persistence API)和MyBatis。这为我们提供了更大的灵活性,可以根据不同的...

    jpa单表递归树形结构实现

    我们可以使用存储过程或者在Java代码中处理。例如,可以使用`findAllByOrderByParentIdAsc()`获取所有节点,然后在内存中遍历和构造树形结构。 最后,业务逻辑中调用`NodeRepository`的方法来操作树形结构。例如,...

    Spring JPA 配置类包集合 方便大家使用

    8. **Pagination and Sorting**:Spring Data JPA支持分页和排序功能,只需要在Repository接口的方法中传入Pageable参数,就可以实现数据的分页和排序。 9. **Integration with Spring Boot**:Spring JPA与Spring ...

    JPA(hibernate) Dao 和 DaoSupport

    在JPA和Hibernate中,可以直接返回查询结果集,但如果需要定制化包装,可以自定义`QueryResult`类来实现。 综上所述,`JPA(hibernate) Dao 和 DaoSupport`涉及到Java持久化技术,主要关注如何通过面向对象的方式...

    Spring Data JPA1.7中文文档

    文档还包含了详细的参考部分,如 JPA 存储库的配置、合并持久性单元、CDI 集成等,以及附录中的名称空间引用、查询关键词、常见问题和术语表。 总的来说,Spring Data JPA 1.7.0.RELEASE 文档是深入了解和使用该...

    jpa代码自动生成工具-springboot

    Spring Boot简化了Spring应用程序的创建和配置过程,而JPA作为Java的ORM(对象关系映射)标准,允许开发者以面向对象的方式操作数据库。本文将深入探讨如何使用JPA和Spring Boot结合,实现代码自动生成工具,提高...

    jpa1.0中文手册

    JPA是一个Java社区规范(Java Community Process JSR 220),用于在Java EE和Java SE环境中管理对象和关系数据库之间的映射,以及管理数据库中的数据持久化操作。JPA为对象/关系映射(ORM)提供了标准化的方法,可以...

Global site tag (gtag.js) - Google Analytics