У меня есть две сущности, которые были отправлены через службу отдыха в формате Json, и я хочу сохранить их обоих в одной транзакции, которую предоставил jpa cascade ALL, но в Spring Data Rest я могу только POST одну сущность. Я много искал, и их решение состояло в том, что я должен опубликовать первый объект, а затем второй объект, после чего я должен указать связь между ними с помощью PUT (например, https://hellokoding.com/restful-api-example-with-spring-boot-spring-data-rest-one-to-many-relationship-and-mysql/). это работа, но мне нужно отправить только один DTO за одну транзакцию, в этом решении сущности сохраняются отдельно, и если один из них не удается зафиксировать, я не могу откатить другие. Ниже приведены мои сущности:
@Entity
@Table(name = "RESTAURANT")
public class Restaurant extends BaseEntity {
private String name;
private Address address;
public Restaurant() {
}
@Column(name = "NAME", nullable = false, unique = true)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@OneToOne(fetch = FetchType.LAZY, mappedBy = "restaurant", cascade = CascadeType.ALL)
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
if (address == null) {
if (this.address != null) {
this.address.setRestaurant(null);
}
} else {
address.setRestaurant(this);
}
this.address = address;
}
}
и
@Entity
@Table(name = "ADDRESS")
public class Address extends BaseEntity {
private String title;
private Restaurant restaurant;
@Column(name = "TITLE")
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "RESTAURANT_ID")
public Restaurant getRestaurant() {
return restaurant;
}
public void setRestaurant(Restaurant restaurant) {
this.restaurant = restaurant;
}
}
А когда ПОСТ до http://localhost: 8088 / рестораны с ниже JSON:
{
"name":"restaurant name",
"address":{
"title":"asli"
}
}
ожидаемый каскад сохранения, но адрес исчез на заднем конце. Также я не использую RestController в другом файле, я хочу, чтобы данные весны jpa предоставляли все остальные услуги.