Java 如何使用spring引导存储库配置公开超类的ID
我有一个名为RepositoryConfig.java的类,它扩展了Java 如何使用spring引导存储库配置公开超类的ID,java,rest,spring-boot,repository,spring-data,Java,Rest,Spring Boot,Repository,Spring Data,我有一个名为RepositoryConfig.java的类,它扩展了repositoryrestconfiguureradapter。这个类有一个方法 public void configureRepositoryRestConfiguration(RepositoryRestConfiguration conf){ conf.exposeIdsFor(SuperClass.class); } Spring的早期版本将在JSON中公开扩展超类的所有类的ID。现在,在升级到最新的Spri
repositoryrestconfiguureradapter
。这个类有一个方法
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));
}
}
看看这个,看看其他选项。可能会help@petey我有许多类扩展了一个超类,我想为它公开id。我想知道是否有一种方法不需要为每个子类编写一行代码