如何在模型中保存字段而不将其持久保存在数据库中?

时间:2019-06-03 11:30:29

标签: java spring-boot

我是Spring Boot的新手,所以这可能是一个n00b问题。

我试图保存一个仅在用户登录后才能访问的字段(表号)。我不想将此保留在数据库中。

流程: - 登录 -选择表 -保存当前用户的表号 -做需要表号的东西 - 登出 -忘记表号。

我尝试使用@Transactional来防止保存字段,并尝试使用SecurityContextHolder.getContext()。getAuthentication来获取当前用户。 这样做可以保存该字段。如果以后我使用相同的方法来获取当前用户并调用getTableNumber()方法,则不再设置该字段。

我意识到这可能是一件非常简单的事情,但是在理解如何访问模型而不访问数据库时遇到了一些问题。

如果需要更多说明或实际代码,请告诉我。

1 个答案:

答案 0 :(得分:0)

我想一个 SessionScoped 豆可以解决您的问题,但仅针对数字值,将所有豆一起创建可能不是可行的解决方案。 因此,您可以将该值存储在用户 http会话中,并在控制器方法中获取该会话对象。一旦从前端获取表号(据我了解),将其放在用户http会话中,就可以通过在控制器处理程序方法中从会话对象获取它并在销毁用户会话时将其用作数据的方式在任何要使用的地方使用它。表中的数字会自动销​​毁。

现在,如果您也想将其放入模型类中,则可以使用 @Transient注释,持久层可以理解该层不应保存在数据库中

引用:https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/context/annotation/SessionScope.html