jjzjj

EntityManager

全部标签

java - 具有分离的 DAO 和服务层的 EJB 的 JPA

这更多是我目前遇到的架构问题。我需要有关在项目中集成EJB和JPA的最佳实践的帮助。我想要EJB来完成服务层的工作,其中包含我的应用程序的业务逻辑。就在那之下,我想要一个DAO层,我的EJB将有一个句柄,使用DAO工厂尽可能地分离这两个层。知道了这一点,我显然也不能将我的DAO作为EJB,因为我不希望它们自动注入(inject),因为我希望它们通过工厂创建。这导致我使用手动创建实体管理器Persistence.createEntityManagerFactory("PortalEJB").createEntityManager();现在...这个调用位于我的抽象JPADAO中:publ

java - EJB:在 PostConstruct 方法中使用 EntityManager

构建bean后,我想使用EntityManager从数据库中检索数据。在构造函数中是不可能的,因为EntityManager是在调用构造函数之后注入(inject)的。所以我尝试用@PostConstruct注释的方法来做。根据API,在完成所有注入(inject)后调用PostConstruct方法。执行查询有效,但它总是返回一个空列表。如果我在其他方法中使用相同的查询,它会返回正确的结果。有谁知道,为什么它在PostConstruct方法中不起作用?@Stateful(mappedName="price")@Singleton@StartuppublicclassPriceMana

java - EntityManager.flush() 在 Java Web 服务中提交事务

编辑:感谢大家的回答,但问题出在我的数据源配置上,它实际上处于自动提交模式。参见myanswerbelow了解详情。EntityManager.flush()的Javadoc方法并在Google中搜索它似乎表明flush方法只将挂起的语句发送到数据库并且不提交事务。但是我创建的一个简单的测试Web服务(在Java7、Oracle11gR2、JBoss7.1中,Web服务被打包为一个jar文件)似乎表明并非如此:这是表创建脚本:CREATETABLEtest(idINTEGERNOTNULL,nameVARCHAR2(20),CONSTRAINTtest_pkPRIMARYKEY("ID

java - JPA 应用程序中的连接何时返回到连接池?

如果我调用,连接是否只返回到JPA应用程序中的连接池entityManager.close();?支持实体管理器的连接能否在其生命周期内发生变化?提前致谢魔珠 最佳答案 JPA规范没有定义这些东西,它取决于实现来管理连接。出于显而易见的原因,当事务处于Activity状态时,您可以安全地假设连接在提交之前是相同的。一旦txn结束,它可能会被退回,或者可能会根据实现情况被保留(你没有提到你的) 关于java-JPA应用程序中的连接何时返回到连接池?,我们在StackOverflow上找到一

java - Hibernate Entitymanager - "deprecated - use hibernate-core instead"是什么意思?

我正在学习hibernatejpa教程,我需要使用entitymanager。但是当我检查mvnrepository时,它说“已弃用-请改用hibernate-core”。显然,如果没有hibernate-entitymanager作为依赖项,我的应用程序将无法工作(并且它无法同时使用hibernate-core和hibernate-entitymanager作为依赖项)。有人可以帮助解释为什么它被“弃用”吗?https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager 最佳

java - 在 Spring MVC 应用程序中修复 Null EntityManger?

在下面的代码中,我注入(inject)的EnitityManager出现了问题,它总是显示为null;publicclassGenericControllerextendsAbstractController{@PersistenceContext(unitName="GenericPU")privateEntityManagerem;protectedModelAndViewhandleRequestInternal(HttpServletRequestrequest,HttpServletResponseresponse)throwsException{//(em==null)is

java - JPA EntityManager 静态还是实例?

我过去构建了一些JPA东西,每个DAO实例使用一个javax.persistence.EntityManager实例;这是大多数示例的设置方式。publicclassBaseDaoThatEveryDaoExtends{@PersistenceContextprivateEntityManagerentityManager;}架构师告诉我,我刚刚偶然发现了使用PersistenceContext注释注入(inject)的staticjavax.peristence.EntityManger的代码这不会导致任何问题,即使在具有JTA和XA数据源的集群应用程序中,它们也从未遇到过任何问题:

java - 当您不确定单元名称时如何创建 EntityManager?

我处于需要在运行时确定EntityManager的单元名称的情况。例如,我想做这样的事情:@PersistenceContext(unitName=findAppropriateJdbcName())EntityManagerentityManager;但是,这对于注释是不可能的。当您直到运行时才确定单元名称是什么时,是否可以创建EntityManager? 最佳答案 可以在运行时指定持久性单元(PU)名称,但这是用于创建EntityManagerFactory的参数,而不是单独的EntityManager。查看Javadoc对于P

java - EntityManager 在 JBoss JSF bean 中的 merge() 上抛出 TransactionRequiredException

我在JBoss5.0.1GA上设置了一个JSF应用程序,以在表格中显示用户列表,并允许通过每个用户旁边的按钮删除单个用户。当deleteUser被调用时,该调用被传递给一个UserDAOBean,后者获得一个从JBoss注入(inject)的EntityManager。我正在使用代码publicvoiddelete(Eentity){em.remove(em.merge(entity));}删除用户(代码是来自JPA教程的c&p)。仅仅调用em.remove(entity)没有任何效果,仍然会导致相同的异常。当到达这一行时,我得到一个TransactionRequiredExcepti

java - Hibernate EntityManager,它应该用作单例吗?

我没有使用Spring,所以我在类中创建了一个EntityManager实例。我使用Hibernate-Eclipse逆向工程来自动生成类。这些类都有一个EntityManager的实例。我不是100%确定Hibernate是如何与EntityManager一起工作的,所以我想知道创建这么多这个类(EntityManager)的实例是否可以,例如,事务会不会有问题?我是否应该创建一个单独的类来为所有其他类分发EntityManager的静态实例?还是没关系?编辑:我看到有一个叫做@PersistenceContext的东西,它似乎没有将我的persistence.xml作为bean加载