使用选择性的@Entity

时间:2012-04-16 12:53:54

标签: java jpa entity

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

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

有没有办法在@Entity注释中添加某种语句?或者根本不应该使用@Entity,在这种情况下?

提前感谢您的帮助!

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

1 个答案:

答案 0 :(得分:3)

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

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

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

如果您有Entity,其中包含使用@ FetchType.LAZY注释的用户集合:

  • 根据需要使用上面定义的where子句获取用户。