2016-01-24 97 views

回答

7

您可以在實體級別使用RepositoryRestConfigurerAdapter進行配置。

@Configuration 
public class ExposeEntityIdRestConfiguration extends RepositoryRestConfigurerAdapter { 

    @Override 
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) { 
     config.exposeIdsFor(MyEntity.class); 
    } 
} 

注意,使用這個你正在努力克服彈簧數據休息的原則 - SDR促進超媒體能夠通過使用鏈接資源之間導航使用API​​ - 在這裏你的資源被識別和引用鏈接,因此不再需要ID。在您的客戶端上使用ids會將構建資源鏈接的複雜性推向客戶端。客戶不應該被這些知識困擾。

+4

有沒有辦法一次暴露所有實體的ID?對於例如在配置中設置? – thorinkor

+0

我該如何爲所有的實體一次做到這一點?我們有很多這個模塊不知道的包。 – BigDong

0

最好的解決方案不是使用實體的ID,而是使用超媒體提供的鏈接引用。 您只需要根據Spring Data Rest使用的HAL規範解析您的JSON。

相關問題