如何在Spring Data Rest中使用一个Request创建多个资源?

时间:2015-08-17 14:33:19

标签: java hibernate jpa spring-data-rest

为了使用单个http请求在我的数据库中创建多个记录,我需要实现什么?

我有一个使用SpringDataRest和JPA / Hibernate的小型Web应用程序,我可以使用这样的请求创建资源:

curl -XPUT -H"Content-Type: application/json; charset utf-8"\
-d'{"id":"1","type":"test"}'\
http://localhost:8080/test/items/1

相反,我想做类似的事情:

curl -XPUT -H"Content-Type: application/json; charset utf-8"\
-d'[{"id":"1","type":"test1"},{"id":"2","type":"test2"}]'\ 
http://localhost:8080/test/items/

相应的存储库看起来像这样:

@RestResource(path = "items", rel = "items")
public interface ItemRepository extends PagingAndSortingRepository<Item, String> {
}

The Bean使用:

@Entity
@XmlRootElement(name = "page")
@Table(name="page")
public class Item {

@Id
@Column(name="id")
private String id;

@Column(name="type")
private String type;

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

/**
 * @return the type
 */
public String getType() {
    return type;
}

/**
 * @param type the type to set
 */
public void setType(String type) {
    this.type = type;
}   
}

1 个答案:

答案 0 :(得分:0)

你需要一个控制器。

基本上,您希望覆盖资源上的POST方法以接受项目列表而不是单个项目。

您必须在控制器内引用您的存储库并手动插入对象。