簡體   English   中英

在Spring Data JPA查詢中默認值?

[英]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);

可能會變得凌亂,但我相信您可以使用

Document findByIdAndDeletedIsFalse(String id);

用於spring數據存儲庫( 參考 )。

如果您使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM