我现在正在Lift的电子商店项目中工作。为方便起见,每个访问该商店的用户都在Mapper中分配了一个持久的ProtoUser条目。此条目标记为临时。 我现在必须使用onAboutToShutdownSession
删除会话终止时的DB条目显然我没有访问User.currentUser,因为我在会话之外。 (?)我的函数中仍然有LiftSession Reference。
问题是:如何从LiftSession或Boot.scala的上下文中访问currentUser(甚至currentUserId)SessionVar
感谢您的回答!
安德烈亚斯
答案 0 :(得分:1)
您无法在会话外访问SessionVar。
如果您在处理请求期间构建了一个函数,则可以执行以下操作:
val id = User.currentUserId.get
val f: () => Unit = () => {
id.foreach{realId => deleteFromDatabase(realId)
}
因为在请求范围内捕获了id值并且f关闭了范围,所以将捕获User.currentUserId的值,并且该函数将能够从数据库中删除该用户。