[英]Defaulting a value on a spring data jpa query?
我有一個帶有邏輯刪除字段的表-
CREATE TABLE DOCUMENT
(
ID VARCHAR2(255 BYTE) NOT NULL,
DOCUMENT_NAME VARCHAR2(255 BYTE),
DELETED NUMBER
)
然后創建JPA對象-
@Entity(name = "DOCUMENT")
public class Document {
@Column(name = "ID")
private String id;
@Column(name = "DOCUMENT_NAME")
private String name;
@Column(name = "DELETED")
private Boolean deleted;
// other params
}
帶有存儲庫-
public interface DocumentRepository extends CrudRepository<Document, String> {
Document findByIdAndDeleted(String id, Boolean deleted);
}
我只想查找未刪除的文檔,因此想知道是否有一種方法可以將我的查詢默認設置為Deleted = false,並允許我進行諸如
// where deleted = false
Document findById(String id);
如果您使用Hibernate,則可以在類中添加@Where
注釋。 像這樣:
@Where(clause="deleted <> '1'")
@Entity(name = "DOCUMENT")
public class Document {
@Column(name = "ID")
private String id;
@Column(name = "DOCUMENT_NAME")
private String name;
@Column(name = "DELETED")
private Boolean deleted;
// other params
}
在這里看一下http://featurenotbug.com/2009/07/soft-deletes-using-hibernate-annotations/ 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.