BackendIdConverter не может быть преобразован в тип - PullRequest
0 голосов
/ 11 февраля 2019

У меня проблема с созданием нового объекта с составным первичным ключом.В этом посте я прочитал Spring Data Rest @EmbeddedId не может быть построен из Post Request , что эту проблему можно решить с помощью BackendIdConverter.Во-первых, я не понимаю, как использовать этот класс и как он конвертирует URI в id.Кто-нибудь может дать мне пример, пожалуйста. Во-вторых, когда я пытаюсь написать класс, который расширяет BackendIdConverter, я получаю ошибку, что он не может быть разрешен для типа.Не могли бы вы помочь мне решить эту проблему

@Entity
@Table(name = "booking_routes")

The entity class
public class BookingRoute extends ResourceSupport implements Serializable, Comparable<BookingRoute> {
    private static final long serialVersionUID = 1L;

    @EmbeddedId
    private BookingRouteId pk=new BookingRouteId();
    @Column
    private Integer rank;

    @ManyToOne
    @MapsId("bookingId")
    @JoinColumn(name = "booking_id")
    @JsonIgnore
    private Booking booking;

    @ManyToOne
    @MapsId("locationId")
    @JoinColumn(name = "location_id")
    @JsonIgnore
    private Location location;

    public BookingRoute() {
    }

    public BookingRoute(Booking booking, Location location, Integer rank) {
        this.pk = new BookingRouteId(booking.getBookingId(), location.getLocationId());
        this.booking = booking;
        this.location = location;
        this.rank = rank;
        booking.getBookingRoutes().add(this);
        location.getBookings().add(this);

    }
....
}

The embeddable id class
@Embeddable
public class BookingRouteId implements Serializable {
    private static final long serialVersionUID = 1L;

    @Column(name = "booking_id")
    private Integer bookingId;

    @Column(name = "location_id")
    private Integer locationId;

    public BookingRouteId() {

    }

    public BookingRouteId(Integer bookingId, Integer locationId) {
        super();
        this.bookingId = bookingId;
        this.locationId = locationId;

....
}
here how I send the post method
{
  "pk": {
    "foreignKeyId": "http://localhost:8080/path/to/other/resource/1",
    "foreignKeyId": "http://localhost:8080/path/to/other/resource/2",
    "rank":1
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...