Spring Data REST Cómo agregar recursos incrustados en línea

Estoy usando Spring Data REST y Hateoas en combinación con el navegador HAL. Esto funciona perfectamente, pero ahora me gustaría hacer un volcado JSON de una entidad específica con (un conjunto de) sus objetos asociados. solía@Projection pero luego me quedé atrapado nuevamente.

FYI: El comportamiento normal (con incrustados y enlaces, etc.) debe permanecer además del nuevo punto final (sin incrustados y enlaces).

Para ilustrar más mi problema / pregunta:

class Person {
  String name;
  List<Company> companies;
}

class Company {
  String name;
  Address address;
}

class Address {
  String street;
}

Ahora me gustaría ver algo como esto:

{
   "name": "John",
   "companies": [
        {
            "name": "Stackoverflow",
            "address": {"street": "Highway blvd."}
        },
        {
            "name": "Oracle",
            "address": {"street": "Main rd."}
        }
   ]
}

Mientras recibo esto:

{
   "name": "John",
   "_links": {
        "self": {"href": "http...."},
        "companies": {"href": "http ..."}
   },
}

Ver también:http://docs.spring.io/spring-data/rest/docs/current/reference/html/#projections-excerpts

En mi ejemplo, presenté dos dificultades que tengo: Listas (compañías) y niveles múltiples: persona-> compañía-> dirección. Ambos deben trabajar (probablemente 5 niveles, algunos de los cuales tienen "muchas" relaciones).

Respuestas a la pregunta(3)

Su respuesta a la pregunta