Сборщик оборачивает transfer object линками. transfer object нужен только для <a title=«» /> Сборщику передается DAO и линк ... как то не слабосвязанно.
@Path("/city")
CityResource
{
@Inject ITOLinkAssembler<AddressWithHref> toa ;
@Context UriInfo uri ;
@Inject GenericDAO<CityDAO> cityDao ;
@Inject GenericDAO<StreetDAO> streetDao ;
// ...
// ...
/**
* По id города получает список улиц в этом городе
* ... FROM city c JOIN street s ON s.pid = c.id ...
* Знаю, что PK из БД плохо.
*/
@Path("/{pid: \\d+}/street")
public List<AddressWithHref> getChilds(@PathParam("pid") int cityId)
{
URI uri = uri.getBaseUriBuilder().path(StreetResource.class).build()
return toa.assemble(streetDao, uri) ;
}
}
GET /city/1/streets -> href /street/18 ... href /street/99