Customizing HATEOAS link-Generierung für Personen mit composite ids

Ich so konfiguriert haben, dass ein RepositoryRestResource auf eine PageAndSortingRepository zugreift, eine Einheit, die beinhaltet ein composite-Id:

@Entity
@IdClass(CustomerId.class)
public class Customer {
    @Id BigInteger id;
    @Id int startVersion;
    ...
}

public class CustomerId {
    BigInteger id;
    int startVersion;
    ...
}

@RepositoryRestResource(collectionResourceRel = "customers", path = "customers", itemResourceRel = "customers/{id}_{startVersion}")
public interface CustomerRepository extends PagingAndSortingRepository<Customer, CustomerId> {}

Wenn ich auf den server zugreifen zu "http://<server>/api/customers/1_1" zum Beispiel, bekomme ich die richtige Ressource wieder als json, aber die href in der _links Abschnitt für sich selbst ist, das falsche und das gleiche auch für alle anderen Kunden, die ich Abfrage: "http://<server>/api/customer/1"

d.h.:

{
  "id" : 1,
  "startVersion" : 1,
  ...
  "firstname" : "BOB",
  "_links" : {
    "self" : {
      "href" : "http://localhost:9081/reps/api/reps/1" <-- This should be /1_1
    }
  }
}

Ich vermute, das ist wegen meiner composite-Id, Aber ich bin chuffed, wie ich das ändern kann das Standard-Verhalten.

Hatte, habe ich einen Blick auf die ResourceSupport und die ResourceProcessor Klasse, aber bin mir nicht sicher, wie viel ich ändern muss, um dieses Problem zu beheben.

Kann jemand, der weiß, Feder Leih mir eine hand?

InformationsquelleAutor coderatchet | 2014-05-22
Schreibe einen Kommentar