自定義輸出

1. 隱藏某個字段

使用默認的@JsonIgnore來注釋

2. @Projection

定義一個投影:

@Projection(name = "motoPaymentInfoProjection", types = {MotoPaymentInfoEntity.class})
public interface MotoPaymentInfoProjection {
    String getInvoiceNo();

    String MerchantId();

    @Value("#{target.invoiceNo} #{target.merchantId}")
    String getFullInfo();
}

使用:

@RepositoryRestResource(collectionResourceRel = "motoPaymentInfo", path = "/motoPaymentInfo",
        excerptProjection=MotoPaymentInfoProjection.class)

3. 屏蔽方法

@RepositoryRestResource(path="user",excerptProjection=ListUser.class)
public interface UserRepository extends JpaRepository<User, Long>{

    @RestResource(exported = false)
    @Override
    public void delete(Long id);
}

4. RepositoryRestMvcConfiguration

暴露ID字段:

@Configuration
public class SpringDataRestConfig {
    @Bean
    public RepositoryRestConfigurer repositoryRestConfigurer() {
        return new RepositoryRestConfigurerAdapter() {
            @Override
            public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
                config.exposeIdsFor(MotoPaymentInfoEntity.class, MotoPaymentRequestEntity.class);
                //config.setDefaultMediaType(org.springframework.http.MediaType.APPLICATION_JSON);
                config.setDefaultPageSize(100);
            }
        };
    }
}

results matching ""

    No results matching ""