【问题标题】:How does Hibernate's session.save proxy a transient object?Hibernate 的 session.save 如何代理一个瞬态对象?
【发布时间】:2021-09-21 06:46:02
【问题描述】:
 SomeClass transientObject = new SomeClass();//Transient POJO
 session.save(transientObject);
 transientObject.setSomeProperty("someValue");//This is a persistent object now

hibernate 如何在运行时代理transientObject

或者它只是在persistenceContext 中保存transientObject 的副本,映射到transientObject 的对象引用并在事务提交时比较对象?

【问题讨论】:

    标签: hibernate proxy persistent transient


    【解决方案1】:

    Hibernate 会记住对象引用,并且在事务提交时,它会检查持久性上下文中的所有对象是否脏。然后将脏对象刷新到数据库中。

    【讨论】:

    • 感谢您的回答。这说得通。您能否添加整个过程的摘要或指向一个参考?我还有一些问题,比如 Hibernate 如何识别脏对象?它做了深度比较吗?它如何存储对象引用?持久化上下文是否存储加载的持久化对象的深层副本?
    • 启用增强后,对象会进行脏跟踪,Hibernate 只会查询每个对象的信息,否则必须进行深度比较。我不知道除了 Hibernate 代码本身是否有对此的参考。
    猜你喜欢
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2013-08-19
    • 2015-05-29
    • 2011-12-15
    • 2012-01-25
    相关资源
    最近更新 更多