Expose all IDs when using Spring Data Rest

前端 未结 12 1844
北海茫月
北海茫月 2020-11-30 06:26

I\'d like to expose all IDs using a Spring Rest interface.

I know that per default an ID like this will not be exposed via the rest interface:

    @I         


        
12条回答
  •  臣服心动
    2020-11-30 07:15

    Try this configuration. It works perfectly fine for me.

    @Configuration
    public class RestConfiguration extends RepositoryRestConfigurerAdapter{
    
          @PersistenceContext
          private EntityManager entityManager;
    
          @Override
          public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
               //TODO: Expose for specific entity!
               //config.exposeIdsFor(Officer.class);
               //config.exposeIdsFor(Position.class);
    
               //TODO: Expose id for all entities!
               entityManager.getMetamodel().getEntities().forEach(entity->{
                    try {
                         System.out.println("Model: " + entity.getName());
                         Class clazz = Class.forName(String.format("yourpackage.%s", entity.getName()));
                         config.exposeIdsFor(clazz);
                    } catch (Exception e) {
                         System.out.println(e.getMessage());
                    }
                });
        }
    }
    

提交回复
热议问题