transient: 英文原意是透明的、不可见的。一个对象刚被实例化,或者说刚 new 出来时处于transient状态,此时对象没有id 值。对象只存在内存中,不存在数据库中。
persistent: 持久的。对象有一个id 值,同时存在于数据库和Session 中,Session 实际上持有一个该对象在内存的引用。执行save, load, get 方法时,对象转变为persistent 状态。
detached: 独立的。Session 关闭后,对象由persistent 转为detached, 存在于数据库和内存中,但不存在于Session, 因为Session已经关闭。
对这些概念只要简单理解就可以了,平时写程序并不需要特意去分析。在读文档资料时可能会出现这些术语。