ho le seguenti entità definite nel mio progetto:Collegamenti a enti incorporati in primavera dati Resto
Paese
@Entity
@Data
public class Country {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
@Column(nullable = false)
String name;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
List<City> cities = new ArrayList<City>();
}
Città
@Entity
@Data
public class City {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
@Column(nullable = false)
String name;
@ManyToOne
Country country;
}
persona
@Entity
@Data
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
@Column
String name;
@Embedded
Address address = new Address();
}
Indirizzo
@Data
public class Address {
@Column
String line;
@ManyToOne
Country country;
@ManyToOne
City city;
}
Ho anche repository definiti per Person
, Country
e City
.
Quando faccio una richiesta GET a/persone/1 ottengo il seguente risultato:
{
"name":null,
"address":{
"line":"Address1"
},
"_links":{
"self":{
"href":"http://localhost:8080/persons/1"
},
"city":{
"href":"http://localhost:8080/persons/1/city"
},
"country":{
"href":"http://localhost:8080/persons/1/country"
}
}
}
Ho il sospetto che, poiché l'indirizzo è un oggetto incorporato, i link generati per paese e città sono sbagliate. Non restituiscono nulla anche se sono presenti i valori city
e country
. Quali dovrebbero essere i collegamenti corretti?
Gli oggetti incorporati non sono supportati da Spring Data Rest?
Non credo che tu sia in grado di raggiungere '/ persons/1/address'? – Steve
Restituisce la richiesta non valida HTTP 400 con il seguente messaggio: PersistentEntity non deve essere nullo! – idursun