gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:45:01 25 4
gpt4 key购买 nike

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

按照埃德温的建议进行澄清:在一个系统中有多个帐户。当某人登录时,我们可能会实例化该人的帐户,以确定该人拥有哪些权限。如果系统管理员想要访问同一个帐户,也许在帐户所有者仍在使用该帐户时更改权限,该怎么办?有没有办法防止这种情况,或者有没有办法通知系统管理员该帐户已被实例化?

最佳答案

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

因此,实体与其上下文的存在相关联,并且在 JPA 中存在不同类型的上下文。

请参阅JPA 2.1 Specification第 7 章介绍实体管理器和持久性上下文。

现在,这不会阻止任何人创建您的类的实例并按照他们认为合适的方式使用它们。或者您的应用程序中有分离的实体。例如,在持久保存新实体之前,它是分离的并且不受实体管理器的控制。

您可以考虑阅读上述同一规范中的第 3.2 节“实体实例生命周期”。

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

关于java - 在JPA中,有没有办法防止一个对象被多次实例化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25493316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com