2017-07-28 65 views
1

我有兩個表EmployeeAddressone-to-one的關係。使用Spring Data Rest更新多個相關表

CREATE TABLE EMPLOYEE(
     ID BIGINT PRIMARY KEY NOT NULL, 
     EMP_NAME VARCHAR(50) NOT NULL, 
     PHONE_ID BIGINT, 
     DELETED BOOLEAN NOT NULL DEFAULT FALSE, 
     CONSTRAINT CONSTRAINT1 FOREIGN KEY (PHONE_ID) 
     REFERENCES PHONE (ID) 
) 


CREATE TABLE PHONE(
    ID BIGINT PRIMARY KEY NOT NULL, 
    PH_NUMBER VARCHAR(20) NOT NULL, 
    DELETED BOOLEAN NOT NULL DEFAULT FALSE, 
) 

我正在使用Spring Data REST。

Q1。我想公開一個單一的數據休息庫方法來更新EMPLOYEE和`PHONE的DELETED列。

類似下面:

TestRepository implements CrudRepository{ 
    @Query(value="update both table query", native=false) 
    public void updateBoth(); 
} 

Q2。這樣做甚至可以使用Spring數據REST。

請注意:我不希望使用本地查詢,即@Query(value="", native="true")

回答

2

你必須找到正確的使用框架和過度使用它之間的平衡。

Spring Data REST會將您的存儲庫暴露給HTTP,但您無法用它解決所有問題。

這裏的正確方法是創建一個自定義控制器,並通過適當的事務管理實現所需的功能,以獲得所需的數據完整性。

相關問題