gpt4 book ai didi

Spring Data Rest 发布到收集端点

转载 作者:行者123 更新时间:2023-12-04 18:29:09 25 4
gpt4 key购买 nike

我有一个我认为相当简单的问题,但经过几个小时的搜索可以找到解决方案,而且我对 Spring 比较陌生,所以请原谅任何不正确的术语或明显的错误。

我有一个事件对象,它与预订对象具有一对多关系,如下所示

事件:

@Entity
public class Event {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long eventId;
private Date start;
private Date end;
private String title;

@OneToMany(mappedBy="event")
private Set<Booking> Bookings;

protected Event() {
// for JPA
}
// Getters and setters omitted for brevity
}

预订:

@Entity
public class Booking {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long bookingId;
private String title;
private String contact;

@ManyToOne
@JoinColumn(name="event_id", nullable=false)
private Event event;

public DiveBooking() {
// for JPA
}
// Getters and setters omitted for brevity
}

事件库:

public interface DiveEventRepository extends JpaRepository<Event, Long> {

List<Event> findByStartBetweenOrEndBetween(
@Param("start") Date startStartTime,
@Param("end") Date startEndTime,
@Param("start") Date endStartTime,
@Param("end") Date endEndTime);
}

预订存储库

public interface BookingRepository extends JpaRepository<Booking, Long>{

}

这些暴露端点:

/休息/事件/休息/预订

一个事件的实例:

/休息/事件/1

及其预订:

/rest/events/1/bookings

我想要实现的是创建一个新的预订并将其与一个事件相关联。我的数据模型将 event_id 作为必填字段(因为没有事件的预订是没有意义的),并且我体内的每根纤维都在说我应该能够发布一个新的预订对象到/rest/events/1/bookings 并让它创建一个与 ID 为 1 的事件关联的新预订对象。但是,每当我尝试发布到该 URI 时,我都会收到消息:

Failed to load resource: the server responded with a status of 405 (Method Not Allowed)

检查端点/rest/events/1/bookings 的 header 时,我可以看到允许发布:

Access-Control-Allow-Methods:POST, GET, OPTIONS, DELETE

所以现在我完全糊涂了,不知所措。感觉我应该能够以这种方式创建预订,而且我真的不想沿着必须创建孤立预订然后将其与事件相关联的路线走下去,因为它会破坏我的数据模型(必须使event_id null in booking),并且没有办法对事务内的操作执行这些操作(是吗?)。我已经尝试对我模型中的其他集合执行类似的操作,但它们也被拒绝发布,所以我猜这与我的 spring data rest 配置有关,但我不知道是什么。

在此先感谢您对此的任何帮助或指点。

最佳答案

将您的新预订发布到:/rest/bookings

{
"title": "my booking title",
"contact": "my contact",
"event": "http:localhost:8080/rest/events/1"
}

正如其他人已经回答的那样,您可以创建一个预订,然后通过对/rest/events/1/bookings 执行 PUT (text/uri-list) 将其关联到一个事件,但我认为上述方法很多更明智。

关于Spring Data Rest 发布到收集端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30555964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com