Comment faire pour supprimer le “_embedded” propriété au Printemps HATEOAS

Je suis en utilisant le Printemps de Démarrage et HATEOAS de construire une API REST et quand mon API renvoie une collection, il est enveloppé à l'intérieur d'un "_embedded" des biens, comme suit:

{
   "_links":{
      "self":{
         "href":"http://localhost:8080/technologies"
      }
   },
   "_embedded":{
      "technologies":[
         {
            "id":1,
            "description":"A",
            "_links":{
               "self":{
                  "href":"http://localhost:8080/technologies/1"
               }
            }
         },
         {
            "id":2,
            "description":"B",
            "_links":{
               "self":{
                  "href":"http://localhost:8080/technologies/2"
               }
            }
         }
      ]
   }
}

Je veux la réponse à être comme ceci:

{
   "_links":{
      "self":{
         "href":"http://localhost:8080/technologies"
      }
   },
   "technologies":[
      {
         "id":1,
         "description":"A",
         "_links":{
            "self":{
               "href":"http://localhost:8080/technologies/1"
            }
         }
      },
      {
         "id":2,
         "description":"B",
         "_links":{
            "self":{
               "href":"http://localhost:8080/technologies/2"
            }
         }
      }
   ]
}

Mon TechnologiesController:

@RestController
@ExposesResourceFor(Technology.class)
@RequestMapping(value = "/technologies")
public class TechnologiesController {
    ...
    @ResquestMapping(method = RequestMethod.GET, produces = "application/vnd.xpto-technologies.text+json")
    public Resources<Resource<Technology>> getAllTechnologies() {
        List<Technology> technologies = technologyGateway.getAllTechnologies();
        Resources<<Resource<Technology>> resources = new Resources<Resource<Technology>>(technologyResourceAssembler.toResources(technologies));
        resources.add(linkTo(methodOn(TechnologiesController.class).getAllTechnologies()).withSelfRel());
        return resources;
    }

La configuration de la classe a l'annotation @EnableHypermediaSupport(type = EnableHypermediaSupport.HypermediaType.HAL).

Quelle est la meilleure façon de produire la réponse sans le "_embedded"?

Si vous supprimez _embedded de la réponse la réponse ne sera plus valide HAL. Vous avez besoin de coller avec _embedded ou d'utiliser un autre type de média.
HAL projet dit "réservé "_embedded" la propriété est FACULTATIVE"
Elle est facultative en ce qu'une ressource n'a pas besoin de ressources intégrées. Cependant, si c'est le cas, ils doivent être sous _embedded.
Je vais avoir le même problème. J'ai une projection sur un objet, et je suis de la limiter à seulement afficher le nom. Le problème, c'est qu'il y a plus de 20 relations, de sorte que le _embedded objet est énorme. Je n'ai pas trouvé un bon moyen de surmonter ce soit.

OriginalL'auteur jose_p | 2015-03-02