2017-07-28 64 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,但您无法用它解决所有问题。

这里的正确方法是创建一个自定义控制器,并通过适当的事务管理实现所需的功能,以获得所需的数据完整性。

相关问题