gpt4 book ai didi

Java - JPA 总是追加到查询

转载 作者:行者123 更新时间:2023-11-30 10:38:42 24 4
gpt4 key购买 nike

我有一个所有实体都应扩展的映射父类(super class):

@MappedSuperclass
public abstract class AbstractPersistedEntity {

/** The id. */
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private Long id;

/** The delete. */
@Column(name = "DELETE_IND", nullable = false)
private Boolean delete;

/** The uuid. */
@Column(name = "UUID", nullable = false)
private String uuid;

/** The created time stamp. */
@Column(name = "CREATED_TS", nullable = false)
private Long createdTs;

/** The modified time stamp. */
@Column(name = "MODIFIED_TS", nullable = false)
private Long modifiedTs;

/* methods omitted for brevity */
}

删除指示器(删除)在可以删除持久化实体时设置为 true - 否则,实体仅被标记为删除。

我不确定的是如何始终将所需的 delete 值附加到每个查询,而不必对每个查询都这样做。我实际上不确定这是否可能。我执行的搜索指向实际定义每个查询以查找 delete 的值。

至少有人可以为我提供另一种搜索答案的方法(乐于自助服务) - 或者 - 提供一种可能的方法来将参数附加到每个查询。

最佳答案

您可以利用 @Where注释:

Where clause to add to the element Entity or target entity of a collection. The clause is written in SQL. A common use case here is for soft-deletes.

所以在你的例子中它看起来像:

@MappedSuperclass
@Where(clause = "DELETE_IND = 0")
public abstract class AbstractPersistedEntity {
...
}

关于Java - JPA 总是追加到查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39611667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com