2

我已经搜索 StackOverflow 一段时间了,但到目前为止还没有成功。因此创建了这个问题......

我目前正在使用 JPA,但我遇到了一个问题(至少对我来说是这样)。情况如下:我创建了一个系统,其中一个用户可以被删除,但不能从数据库中删除(为了保持这个特定用户的订单)。为此,我只是向实体用户添加了一个布尔值。到目前为止一切都很好,但棘手的部分来了。由于系统的使用不需要任何“已删除”的用户,我不想从数据库中检索它们。

有没有办法向@Entity 注释添加某种声明?或者在这种情况下,我根本不应该使用 @Entity 吗?

在此先感谢您的帮助!

PS。我不是在寻找必须创建某种 User_OLD 表的解决方案。

4

1 回答 1

3

首先,我建议将列“removed”重命名为“inactive”,因为您不会删除用户。

对于检索实体,这里有两种选择:

  • 根据 inactive == false 在数据库中创建 USER_ACTIVE VIEW 并更改您的 @Entity 以使用 USER_ACTIVE 视图。
  • 在从 USER 表中检索时添加 WHERE inactive == false 子句。

如果您有拥有用户集合的实体,并使用@FetchType.LAZY 进行注释:

  • 在需要时使用与上面定义的相同的 where 子句获取用户。
于 2012-04-16T13:12:00.813 回答