gpt4 book ai didi

java - 防止spring-data-rest解析json

转载 作者:行者123 更新时间:2023-11-29 04:29:30 24 4
gpt4 key购买 nike

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

下面是实体和存储库。

实体

@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();
}

任何帮助将不胜感激。

谢谢。

最佳答案

The problem is that spring tries to convert the json request body to an object.

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

Can I prevent this from happening?

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

Can spring I configure spring to save the request body as a string?

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


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

关于java - 防止spring-data-rest解析json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44357023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com