我们的堆栈:Tomcat 7、Spring 3.1.1、OpenJPA 2.2.0
我遇到了一个问题,根源是比较:
server1.equals(server2);
server1 和 server2 都是实体“Server”的实例:
@Entity
public class Server implements Serializable {
private long id;
// getters and setters
}
我必须将比较更改为:
server1.getId().equals(server2.getId());
那个有效,上面的返回 false,即使服务器的 id 相同。 我还检查了两个实例的hashCode,这两个实例确实有不同的hashCode。
为什么我们的应用程序中有同一实体的两个实例?
怎么会发生这种事?数据库中只有一个“服务器”实体。
谢谢!
塞巴斯蒂安
最佳答案
例如,如果您使用不同的实体管理器或不同的事务加载它们,将会有不同的实例。
关于java - 应用程序中可以有同一(开放)JPA 实体的多个实例吗?等于不适用于实体实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13559623/