防止 spring-data-rest 解析 json
Prevent spring-data-rest from parsing json
我想使用 spring-data-rest 和 spring-data-jpa 将 post 请求作为字符串存储在数据库中。问题是 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 数据 REST 模块)。
Can spring I configure spring to save the request body as a string?
您可以使用普通 Spring MVC 控制器,它将请求委托给 REST 存储库,但在它处理原始数据之前(例如将其保存到另一个 table)。
行 @RestResource(exported = false)
表示从 API 中排除该方法,它不会影响方法行为(如果您尝试将其用于此类目的)。
我想使用 spring-data-rest 和 spring-data-jpa 将 post 请求作为字符串存储在数据库中。问题是 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 数据 REST 模块)。
Can spring I configure spring to save the request body as a string?
您可以使用普通 Spring MVC 控制器,它将请求委托给 REST 存储库,但在它处理原始数据之前(例如将其保存到另一个 table)。
行 @RestResource(exported = false)
表示从 API 中排除该方法,它不会影响方法行为(如果您尝试将其用于此类目的)。