![](/img/trans.png)
[英]How do I manually initialize a Spring Boot repository without using beans or annotations? (Kotlin)
[英]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.