我想将post请求作为字符串存储在数据库中,使用spring rest和spring 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();
}任何帮助都将不胜感激。
谢谢。
发布于 2017-06-04 17:57:31
问题是spring试图将json请求体转换为对象。
Spring数据REST的主要思想是将JSON直接转换为ORM机制的一个实例。如果有可能,这些原始数据将保存在哪里?
我能阻止这种事发生吗?
不,您不能(至少,通过Spring数据REST模块)。
spring是否可以将spring配置为将请求主体保存为字符串?
您可以使用普通的Spring控制器将请求委托给REST存储库,但在它处理原始数据之前(例如将其保存到另一个表)。
行@RestResource(exported = false)意味着将该方法排除在API之外,它不会影响方法行为(如果您试图将它用于此类目的)。
https://stackoverflow.com/questions/44357023
复制相似问题