【发布时间】:2018-02-22 08:29:50
【问题描述】:
其实这两个问题都很好:
How Hibernate differs transient and detached entities?
Check for detached entity in Hibernate
我实际上已经阅读了很多次this,并查看了 stackoverflow 中的一些帖子。很多答案只是从持久化状态定义中复制而来,没有进一步解释。
让我们看看下面的例子:
Person person = new Person();
person.id = 123; // 123 identifier exist in database.
person.name = "abc";
Hibernate 文档声明对于 transient 实例,它必须是:
- 使用 new 运算符实例化
- 在数据库中没有持久表示
- 没有分配标识符值
这看起来不像是一个瞬态实例,它不符合定义。
它看起来也不像是一个分离的实例,显然它没有从一个关闭的会话中分离出来。
那么,这是一个暂时的还是分离的实例?
【问题讨论】:
-
据我了解...(未分配标识符值)或注册到持久性上下文
-
另请查看我对您提到的问题之一的回答:stackoverflow.com/questions/48426067/…
-
对不起,我不太明白你的回答,你的意思是,休眠跟踪实例是暂时的还是仅通过其标识符分离?
-
它似乎以某种方式记录了以前分离的实体
标签: java hibernate jpa sessionfactory hibernate-session