我尝试在Spring Data Rest上的$min
之后向@OneToMany关系添加元素,我使用下面的请求将帐户添加到用户帐户集合。< / p>
function dataFactory () { };
dataFactory.$inject = [];
angular.module('ngHandsontable').service('dataFactory', dataFactory);
function MainCtrl(dataFctory) {
this.db = { items: [[5, 6], [7, 8]] };
}
MainCtrl.$inject = ['dataFactory'];
angular
.module('app', ['ngHandsontable'])
.controller('MainCtrl', MainCtrl);
当我检查用户帐户列表时,请求以204响应并且没有任何变化。调试应用程序我可以看到正在保存实体,因此可能没有发生事务提交。我还注意到,如果我将关系更改为@OneToOne,请求将按预期工作。
用户类
curl -v -X PUT -H "Content-Type: text/uri-list" -d "http://localhost:8080/account/1" http://localhost:8080/user/1/accounts
帐户类
@Entity
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString(exclude = "accounts")
@EqualsAndHashCode(of = "id", callSuper = false)
@SequenceGenerator(name = "user_sq", sequenceName = "user_sq")
public final class User extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "user_sq")
private Long id;
//other properties
@OneToMany(cascade = CascadeType.ALL, mappedBy = "owner", orphanRemoval = true)
private List<Account> accounts;
// @OneToOne(cascade = CascadeType.ALL)
// private Account accounts;
}
存储库
@Entity
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(of = "id", callSuper = false)
@SequenceGenerator(name = "account_sq", sequenceName = "account_sq")
public final class Account extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "account_sq")
private Long id;
//other properties
@ManyToOne
private User owner;
}
答案 0 :(得分:0)
尝试在您的POSt或PUT / PATCH请求中使用此主体:
{
// user properties...
"accounts": [
"http://localhost:8080/accounts/1",
"http://localhost:8080/accounts/2"
]
}
要创建新用户(使用他的帐户),请使用对http://localhost:8080/users
的POST请求要更新当前用户(及其帐户),请使用PUT / PATCH请求http://localhost:8080/users/1(1 - 是当前用户的ID)