项目中如果用spring和jpa,或者hibernate,如何在非action中调用entitymanager或者sessionfactory

常见在action中注入@resource service,在service中注入entitymanger,或者sessionfactory.那么如果action中用到一个类,这个类中要进行数据库操作,用@resource em好像不好用。该如何操作

JPA做的事就是和Hibernate一样,只是JPA是sun的EJB3推出来的标准,Hibernate是采用映射文件,JPA采用的是注释,其他大同小异,Hibernate在3.几的版本后,支持了JPA的方式映射。

你说的实体Bean是不是就是持久化的对象?即使在内存中对应数据库的对象,在JPA里和hibernate也很相似,也是游离,持久等几种状态。

如果你会hibernate很好懂JPA。但是我还是喜欢Hibernate,以及hbm配置文件的方式,调整,改动方便,把配置和持久化的BEAN分离开了。清晰
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-07
为什么不好用?出现什么问题?
第2个回答  2011-04-07
@PersistenceContext(unitName = "你在persistence.xml中配置的名称")
public EntityManager em;

Jpa与Spring Boot的整合中,实体管理器EntityManager是怎么注入的_百度...
种JPA部署方式最为简单,但却最受限制。例如,不能连接到现有的JDBCDataSource, 并且不支持全局事务。甚至,持久化类的织入(字节码转换)也是特定于提供者的,经常需要在启动时指定一个特定的JVM代理。

JPA EntityManager功能与原理
Hibernate Session真正实现了接口功能,而代理EntityManager会从当前事务上下文中找到正确的EntityManager,并代理其功能。实际上,我们直接使用的是代理EntityManager,间接使用了Hibernate Session。例如,open-session-in-view和“开启事务”都会在当前线程上下文中设置一个EntityManager,代理EntityManager在执行方法时会...

JPA的Hibernate散装\/批量更新在Spring MVC问题,怎么解决
entityManager.getTransaction().commit();\/\/complete the transaction or you can you use the @Transactional annotation on your save(Iterable<Entity> entities)method. make sure you have transactional annotation support in the Spring Context too ...

...JPA 整合时报错:No bean named 'entityManagerFactory' is define...
1、首先就是在web.xml中配置spring的监听器,代码如图所示,注意将代码放在文件的最上面,这是因为spring初始化容器要先执行即可。2、接着就是进行添加struts2-spring-plugin这个jar包即可。3、然后就是struts2与spring不整合相互之间也能工作,但是整合之后可以将struts2中的对象交给spring容器管理,否则str...

spring jpa使用@service注解时失效提示No bean named 'countryService...
首先它使得 JPA 配置变得更加灵活。JPA 规范要求,配置文件必须命名为 persistence.xml,并存在于类路径下的 META-INF 目录中。该文件通常包含了初始化 JPA 引擎所需的全部信息。Spring 提供的 LocalContainerEntityManagerFactoryBean 提供了非常灵活的配置,persistence.xml 中的信息都可以在此以属性注入的...

「Java开发指南」如何在MyEclipse中使用JPA和Spring管理事务?(一)_百...
在项目中安装Spring facet后,MyEclipse会自动生成applicationContext.xml文件,以及用于Spring和JPA集成的源代码。确保选中“Add Spring-JPA support”复选框,允许项目使用Spring注释管理事务。打开applicationContext.xml文件,观察Spring bean的配置,关注transactionManager与entityManagerFactory之间的关联,以及如何...

JPA的使用总结
Session、EntityManager、Connection和Transaction之间的关系是Session依赖于Connection,Transaction建立在Connection之上。每个事务开启时创建Session,事务结束时关闭Session和EntityManager。在CompletableFuture异步线程中正确使用JPA时,需关注事务管理,尤其是Lazy加载场景。设置spring.jpa.open-in-view=true、将可能触发...

springdatajpa怎么返回一个map
这时候我们想如果返回的是Map的话,用起来会清晰的多。可惜的是JPA的API中并没有提供这样的设置。其实很多JPA的底层实现都是支持返回Map对象的。例如:EclipseLink的query.setHint(QueryHints.RESULT_TYPE, ResultType.Map);Hibernate的.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

Spring Data JPA调用存储过程实例代码实例
JPA连接到数据库,调用存储过程,这样的需求很常见。本文就针对这一点,讲述如何使用spring Data JPA调用存储过程的方法。1、存储过程 假设存储过程如下:CREATE OR REPLACE PACKAGE test_pkg AS PROCEDURE in_only_test (inParam1 IN VARCHAR2);PROCEDURE in_and_out_test (inParam1 IN VARCHAR2, ...

Spring 应用如何访问数据库,看这一篇就够了!
使得JPA与Spring集成变得简单。DAO模式通过DAO接口封装数据库操作,实现解耦,Spring提供了JdbcTemplate、Hibernate和JPA的DAO实现示例。泛型DAO可以进一步减少重复代码,提高代码复用。总结来说,选择哪种方式取决于具体需求、团队习惯和项目规模。理解这些基础,可以更好地在Spring应用中灵活地访问数据库。

相似回答