有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在JPA中,有没有办法防止一个对象被多次实例化?

如果我有一个类的实例,比如Account,那么可能需要防止一个与一个用户的帐户对应的实例同时被实例化多次。使用JPA可以吗

正如Edwin所建议的:在一个系统中有多个帐户。当有人登录时,我们可能会实例化此人的帐户,以确定此人拥有哪些特权。如果系统管理员想访问同一个帐户,可能在帐户所有者仍在使用时更改权限,该怎么办?有没有办法防止这种情况发生,或者有没有办法通知系统管理员帐户已实例化


共 (1) 个答案

  1. # 1 楼答案

    这取决于你的意思。JPA实现的工作方式已经保证,当您在给定的事务中向实体经理请求一个实体时,您将始终得到相同的实体

    因此,实体与它们的上下文存在联系,在JPA中有不同类型的上下文

    参见JPA 2.1 Specification第7章实体管理器和持久性上下文

    现在,这不会阻止任何人创建类的实例,并在他们认为合适的时候使用它们。或者在应用程序中分离实体。例如,在持久化一个新实体之前,它是分离的,不受实体管理器的控制

    您可以考虑阅读上面提到的相同规范中的第3.2节实体实例生命周期。

    所以,也许你应该告诉我们你想做什么,我们可以帮助你想出办法。而不是给出你认为的答案。首先描述一下你认为如果你能阻止JPA提供给定实体的多个/不同实例,你可以解决的问题