簡體   English   中英

如何使用Spring Boot Repository配置公開超類的ID

[英]How do I expose Ids of a superclass using spring boot repository config

我有一個名為RepositoryConfig.java的類,該類擴展了RepositoryRestConfigurerAdapter 該類有一個方法

public void configureRepositoryRestConfiguration(RepositoryRestConfiguration conf){
    conf.exposeIdsFor(SuperClass.class);
}

Spring的早期版本將為擴展超類的所有類公開JSON中的ID。 現在,在升級到最新的Spring Boot 1.3.2之后,擴展超類的類的ID不再公開。 有沒有一種新方法可以為擴展超類的每個類公開ID? 還是我會有一行代碼來公開擴展超類的每個類的ID?

您可以通過EntityManager獲取所有實體,並根據需要對其進行過濾:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.rest.core.config.RepositoryRestConfiguration;
import org.springframework.data.rest.webmvc.config.RepositoryRestConfigurerAdapter;

import javax.persistence.EntityManager;
import javax.persistence.metamodel.Type;

@Configuration
public class RepositoryConfig extends RepositoryRestConfigurerAdapter {

    @Autowired
    private EntityManager entityManager;

    @Override
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        config.exposeIdsFor(
                entityManager.getMetamodel().getEntities().stream()
                .map(Type::getJavaType)
                .filter(SuperClass.class::isAssignableFrom)
                .toArray(Class[]::new));
    }
}

查看此答案以查看其他選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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