• Spring data rest 如何显示主键


    How to expose the resourceId with Spring-Data-Rest?

    Spring-Data-Rest is a quite new project in the Spring family of pivotal. The intention of this project is to reduce the boilercode of controllers and services when you need only CRUD methods on an entity for your REST resources. – Quote from project page is “Spring-Data-Rest makes it easy to expose JPA based repositories as RESTful endpoints.”

    One requirement I had was to expose the CRUD identifier and database primary key which is annotated with @Id. In my case that was needed because the field was functional required. For that I had to expose it because at the standard configuration the ID field is only visible on the resource path, but not on the JSON body.

    To expose it you need to configure your RepositoryRestMvcConfiguration like that:

    1
    2
    3
    4
    5
    6
    7
    8
    @Configuration
    public class MyCoolConfiguration extends RepositoryRestMvcConfiguration {
     
        @Override
        protected void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
            config.exposeIdsFor(FooEntity.class);
        }
    }

    The entity class could look like that:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    @Entity
    public class FooEntity {
     
        @Id
        @GeneratedValue(strategy= GenerationType.AUTO)
        Long id;
     
        String name;
    }

    With this configuration you will receive your entity id back.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
      "_links":{
      "self":{
      }
    },
      "id":1,
      "name":"bar"
    }

    Additional Comment from a Spring-Developer: URI stands for unique, resource, *identifier* – The URI *is* the id. What I expose here is a database internals.

    转自:How to expose the resourceId with Spring-Data-Rest?

    另一种:

    package net.huuat.micro.base.schedule;
    
    import net.huuat.micro.base.schedule.domain.TJobConf;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.rest.core.config.RepositoryRestConfiguration;
    import org.springframework.data.rest.webmvc.config.RepositoryRestConfigurer;
    import org.springframework.data.rest.webmvc.config.RepositoryRestConfigurerAdapter;
    
    @Configuration
    public class SpringDataRestConfig {
    	@Bean
        public RepositoryRestConfigurer repositoryRestConfigurer() {
    
            return new RepositoryRestConfigurerAdapter() {
                @Override
                public void configureRepositoryRestConfiguration(
                        RepositoryRestConfiguration config) {
                    config.exposeIdsFor(TJobConf.class);
                }
            };
        }
    
    }
    

      

    我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他 们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其 实我是一个程序员
  • 相关阅读:
    Oracle -- Create Tablespace
    EntityFramework-DBFirst-重新生成后写的验证消失(解决办法)
    UILocalNotification本地通知
    属性观察者willSet与didSet
    常用后台frame框架
    Windows常用CMD命令
    常用的格式符与转义字符
    Windows操作系统常用快捷键
    Mac操作系统常用快捷键
    srp render queue 失效
  • 原文地址:https://www.cnblogs.com/kms1989/p/5809187.html
Copyright © 2020-2023  润新知