问题标签 [entitymanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何使用 JPA/hibernate EntityManager 和 EJB3.0 实现泛型?
我有一个 slsb 持有我的业务逻辑,如何使用泛型将以下三种方法更改为一种泛型方法?前两个是同一个数据库,第三个是不同的数据库。这些方法还需要与事务相关的进一步注释吗?
提前谢谢了。干杯!
hibernate - Hibernate v3.6:EntityManager 方法“刷新”的问题
以下代码在调用“em.refresh(p)”时抛出异常:
在调试代码时,我们看到 Hibernate 没有在第 6 行将记录写入数据库。他确实做到了 - 在需要时,而不是更早。
在第 7 行,我们得到以下异常: 线程“main”中的异常 javax.persistence.PersistenceException: org.hibernate.HibernateException: 这个实例在数据库中还没有作为一行存在
当我们在第 6 行强制 Hibernate 将记录刷新到 DB 中时,执行 INSERT 并且不会发生错误。我们可以通过执行选择或强制刷新来做到这一点(有所有后果):
我的问题:“刷新”方法是否应该不强制 Hibernate 将记录写入数据库,就像之前放置的 select 或 flush 语句一样?(这可能是一个错误吗?)。
提前感谢您的回答。
皮埃尔
orm - 如何在 EntityManager (JPA) L1 或 L2 缓存大小中设置限制
如何设置 L1 或 L2 缓存大小限制。我担心增加缓存大小。一种方法是为缓存定义超时,但我想知道是否可以限制缓存大小?
RGDS 纳维德
java - JPA 2 - 在 JavaSE 中使用 EntityManager - 几个问题
我有几个关于在 JavaSE 环境中使用实体管理器的问题。
我正在使用存储库模式在数据库上执行我的 CRUD 操作。将有一个像这样的基础存储库类:
然后,我将拥有像 EmployeeRepository 这样的类来继承 Repository。这些存储库类将在我的服务层中创建。
这是初始化实体管理器的好方法吗?我开始认为它不是 - 似乎每个持久性单元应该只有一个实体管理器?在这种情况下,您将为您创建的每个存储库都有一个实体管理器……您将如何确保每个持久性单元只有一个实体管理器?另外,我注意到实体管理器和实体管理器工厂方法有一个 close 方法 - 什么时候应该调用它们?在服务器终止事件上?
如果您知道有关在 JavaSE 中使用 JPA 的任何良好资源,我将不胜感激。
谢谢!
entitymanager - 在 Doctrine 2.0 实体中使用 EntityManager
我有 2 个实体:国家(id、名称)和映射(id、对象、internalId、externalId)。Country 和 Mapping 没有关联(因为 Mapping 不仅有国家的行)。我需要使用以下条件获取国家/地区的外部 ID:
country.id = mapping.internalId
mapping.object = 'country'
所以我计划在 Country 添加函数 getExternalId()
问题:
- 在实体内部使用 EntityManager 是一种好习惯吗?如果不是,请解释在我的情况下如何获取外部 ID?
- 也许可以使用 yaml 文件将 Country 和 Mapping 关联起来?
提前致谢!
java - 我应该多久创建一次 EntityManager?
我有一个EntityManagerFactory
可以创建一个(或多个)EntityManager
实例的实例。我正在使用 Servlet 环境,并且我有一个 EntityManagerFactory 连接到 servlet(通过 servlet 上下文),它在 servlet 的生命周期内共享(因此,对于所有用户)。
我可以执行以下操作之一:
- 为我的 servlet 的生命周期创建一个 EntityManager(例如在所有用户之间共享)
- 为每个用户创建一个(以便每个用户在 HttpSession 中获得自己的)
- 为每个 HTTP 请求创建一个(例如,通过实例化一个新请求并在
doGet
方法结束时将其关闭)
哪个最合适?创建 EntityManager 的成本高吗?如果我执行单个共享 EntityManager,是否有单个事务范围(即独立用户之间的更新可以提交其他更改)?
java - 不使用 Spring 获取 EntityManager
我使用的是 hibernate 但不是 Spring,只是找到了hibernate-generic-dao。这个概念看起来不错,但是当我运行它时,我得到了一个 NPE,因为我没有调用 setEntityManager()。
如何在不使用 Spring 的情况下获取 EntityManager?
java - 如何模拟EntityManager?
我需要模拟实体管理器以使测试服务层(在我的情况下是会话外观)独立于底层(在我的情况下是实体管理器)。
那么我怎么能做到这一点呢?我应该使用 dbunit 吗?我需要easy/j(Mock)吗?
java - 一个 entityManger 找到 entity ,另一个没有
我的程序中有一个非常奇怪的行为。我有 2 个类(LogIn 类和 CreateGame 类),我使用注释在每个类中注入了一个 EntityManager
在某些时候,我从 LogIn 类中的方法中使用 entitymanger.remove(user) 从数据库中删除了一个名为“user”的对象。业务逻辑是用户可以托管和加入游戏(同时),因此删除用户数据库中有关用户创建的游戏的所有条目都将被删除,并且所有显示用户加入的游戏的条目都将被删除还。
之后,我调用另一个函数,该函数使用 LogIn 类中的方法检查用户是否存在
令人惊讶的是,它找到了用户。之后,我调用 CreateGame 类中的一个方法,该方法尝试再次使用来查找用户
该类中的实体管理器无法找到用户(这是预期的结果,因为用户已被删除且不在数据库中)
所以问题是:为什么一个类中的实体管理器在另一个类中找不到用户(这是错误的)?有没有人遇到过同样的问题?
PS:当用户托管了一个由另一个用户(我们称他为 Buser)加入的游戏并且 Buser 制作了一个由当前用户加入的游戏时,就会出现此“错误”。
在这种情况下,通过删除用户,将删除游戏 1 并将用户从游戏 2 中删除,因此结果是
PS2:Beans 是 EJB3.0。这些方法是从委托类中调用的。委托类中的 bean 使用 InitialContext.lookup() 方法进行实例化。请注意,对于登录、创建、加入游戏,适当的委托类调用执行事务的对应 EJB。在 logOut 的情况下,委托调用 EJB 以注销用户,但因为必须完成其他事情(如上所述),此 EJB 调用其他 EJB(再次使用 lookup() ),它具有诸如 removegame()、removeUserFromGame() 之类的方法等等。在执行这些方法之后,用户将被注销。也许这与第一个实体管理器由委托调用但第二个来自 EJb 内部的事实有关,这就是为什么一个实体管理器可以看到不存在的用户而另一个不能?此外,所有方法都有 TRANSACTIONTYPE.REQUIRED
先感谢您
hibernate - EntityManager + Spring 事务性问题
我对概念有疑问,我想我在混合一些东西。我有一个带有 DAO 层的应用程序,这些 DAO 的实现使用 SessionFactory (Hibernate) 来执行 CRUD 操作,我还有一个服务层并使用 Spring 声明式事务管理我的工作单元,一切正常,我不确定是否使用 EntityManager 但似乎它所做的是管理我的工作单元(与我使用 Spring 所做的相同)。
我什么时候应该使用 EntityManager?使用它有什么好处?我为什么要使用它?
谢谢你。