java - 使用选择性@Entity

标签 java jpa entity

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

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

有什么方法可以向 @Entity 注释添加某种类型的语句吗?或者在这种情况下我根本不应该使用@Entity?

预先感谢您的帮助!

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

最佳答案

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

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

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

如果您有实体,其中包含用户集合,并使用 @FetchType.LAZY 进行注释:

  • 在需要时使用与上面定义相同的 where 子句获取用户。

关于java - 使用选择性@Entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10174461/

相关文章:

java - 使用 JFrame 的程序无法启动

java - 如何在返回 Futures 的 Java ExecutorService 中调试 Callable

hibernate - JPA 返回我的实体,仅填充了 id,所有其他字段均为空

ios - 在核心数据 swift ios 中使用未解析的标识符 "Model"

java - 创建类的数组列表

java - 在方法中设置私有(private)变量和读取值

java - 非主键列的一对一关系

java - 如何在实体类中添加 HashMap<Object, String>?

sql-server - 表外键/自身关联?

java - Hibernate 和可序列化实体