【问题标题】:JPA -Why I am seeing two entity instances for each row in DB?JPA - 为什么我看到数据库中的每一行都有两个实体实例?
【发布时间】:2012-11-29 19:53:21
【问题描述】:

当我使用 JProfiler 分析应用程序时,我看到 Db 中的每条记录都有两个实体实例。

比如说 Global_message 是我的表名,它有 20 条记录,映射的 JPA 实体在 Jprofiler 中显示 40 个实例 [2 个类]。

有人可以帮忙吗?这是预期的行为吗?

我在服务器启动时将所有表加载到缓存中,我在服务器启动时看到了这种行为。

【问题讨论】:

    标签: java performance hibernate jpa jprofiler


    【解决方案1】:

    这是完全正常的。 Hibernate 需要其他实例来检查应用程序操作的实体实例是否脏(是否被修改)。在刷新会话的那一刻,Hibernate 会针对其他实例检查可能的更改。有关脏检查的更多详细信息this question 确实有很好的答案。

    【讨论】:

    • 谢谢。我现在有理由了!有什么办法可以避免这种情况。因为,我只是在阅读这些值,从不修改它们。
    • EclipseLink 允许您使用 EclipseLink 特定的注释 (@org.eclipse.persistence.annotations.ReadOnly) 来注释您的实体,以防止这种类型的克隆。也许 Hibernate 也有类似的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    相关资源
    最近更新 更多