【发布时间】:2013-03-24 13:02:07
【问题描述】:
我目前正在做一个项目,我遇到了这个错误:
org.hibernate.TransientObjectException: object references an unsaved transient instance – save the transient instance before flushing
发生了什么: 1.) 我在登录后设置了一个会话范围变量,比如说 SessionScopeVariableA。
2.) 然后我有一个页面,我要在其中添加一个实体,比如说 EntityA。
3.) EntityA 有一个惰性字段 sessionScopeVariableA,所以当我调用 add 方法时,我必须设置这个变量。
entityA.setSessionScopeVariableA(sessionScopeVariableA);
em.persist(entityA);
4.) 请注意,SessionScopeVariableA 包装在会话范围生产者中,而操作是会话范围。
5.) 无论我做什么,我总是以上面指定的瞬态错误结束。
有什么想法吗?
【问题讨论】:
-
sessionScopeVariableA 是否也映射为实体?
-
是的,该应用程序是多租户1,因此在登录时,登录用户需要选择他必须工作的租户,并将其保存在会话范围内。