Używam skryptu startowego-rozruchowego-rodzica 1.4.1.RELEASE.Czy istnieje sposób zwracania obiektów skojarzenia o identyfikatorze w spoczynku danych sprężynowych bez Projekcji
- Wiosenny rozruch @ResponseBody nie jest serializacją identyfikatora jednostki domyślnie.
Jeśli użyć exposeIdsFor zwraca Kod ale trzeba skonfigurować to dla każdej klasy
np
RepositoryRestConfiguration.exposeIdsFor (User.class); RepositoryRestConfiguration.exposeIdsFor (Address.class);
Czy istnieje prostsza konfiguracja, aby to zrobić bez konfigurowania każdej klasy encji.
Patrz: https://jira.spring.io/browse/DATAREST-366
- REST zasobów uczyni atrybut jako URI to odpowiednia powiązana zasobu. Musimy zwrócić powiązany obiekt zamiast identyfikatora URI.
Jeśli używam Projekcja, będzie zwraca związane obiektów, ale trzeba skonfigurować to dla każdej klasy
np
@Entity
public class Person {
@Id @GeneratedValue
private Long id;
private String firstName, lastName;
@ManyToOne
private Address address;
…
}
PersonRepository:
interface PersonRepository extends CrudRepository<Person, Long> {}
PersonRepository powraca,
{
"firstName" : "Frodo",
"lastName" : "Baggins",
"_links" : {
"self" : {
"href" : "http://localhost:8080/persons/1"
},
"address" : {
"href" : "http://localhost:8080/persons/1/address"
}
}
}
Moja projekcji:
@Projection(name = "inlineAddress", types = { Person.class })
interface InlineAddress {
String getFirstName();
String getLastName();
Address getAddress();
}
Po dodaniu projekcję, zwraca ..
{
"firstName" : "Frodo",
"lastName" : "Baggins",
"address" : {
"street": "Bag End",
"state": "The Shire",
"country": "Middle Earth"
},
"_links" : {
"self" : {
"href" : "http://localhost:8080/persons/1"
},
"address" : {
"href" : "http://localhost:8080/persons/1/address"
}
}
}
Jeśli jakieś inne zajęcia mające związek jak adres, wtedy trzeba dodać projekcji dla tych klas również .
Ale nie chcę konfigurować dla każdej klasy. Jak wdrożyć dynamiczną projekcję? Tak, aby wszystkie moje jednostki zwróciły w odpowiedzi obiekt zagnieżdżony.
Patrz: https://jira.spring.io/browse/DATAREST-221
Ok. Już próbowałem z tym .. działa dobrze ...Czy jest to jedyny sposób na zwrócenie identyfikatora w odpowiedzi dla wszystkich podmiotów? – SST
I chcę odpowiedzi również dla [2]. Uprzejmie podaj swoje przemyślenia .. – SST