繁体   English   中英

防止spring-data-rest解析json

[英]Prevent spring-data-rest from parsing json

我想使用spring-data-rest和spring-data-jpa将post请求作为字符串存储在数据库中。 问题是spring尝试将json请求体转换为对象。 我可以防止这种情况发生吗? 我可以配置spring以将请求体保存为String吗?

下面是实体和存储库。

实体

@Entity
public class DatabaseRecord {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String json;

    public DatabaseRecord(String json) {
        this.json = json;
    }

    public Long getId() {
        return id;
    }

    public String getJson() {
        return json;
    }
}

知识库

public interface ExampleRepository extends CrudRepository<DatabaseRecord, Integer> {

    @Override
    @RestResource(exported = false)
    void delete(Integer integer);

    @Override
    @RestResource(exported = false)
    void delete(DatabaseRecord record);

    @Override
    @RestResource(exported = false)
    void delete(Iterable<? extends DatabaseRecord> iterable);

    @Override
    @RestResource(exported = false)
    void deleteAll();
}

任何帮助将非常感激。

谢谢。

问题是spring尝试将json请求体转换为对象。

它是Spring Data REST的主要思想 - 将JSON直接转换为ORM机制持久化的实例。 如果可能,这个原始数据将保存在哪里?

我可以防止这种情况发生吗?

不,你不能(至少通过Spring Data REST模块)。

可以spring我配置spring将请求体保存为字符串吗?

您可以使用一个普通的Spring MVC控制器,它将请求委托给REST存储库,但在它处理原始数据之前(例如将其保存到另一个表中)。


@RestResource(exported = false)表示从API中排除方法,它不会影响方法行为(如果您尝试将其用于此类目的)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM