我有同样的问题,并通过删除来解决cascade = CascadeType.PERSIST
。
CascadeType.ALL
根据文档,你可以使用,它也等同于使用PERSIST:
Defines the set of cascadable operations that are propagated to the associated entity. The value cascade=ALL is equivalent to cascade={PERSIST, MERGE, REMOVE, REFRESH, DETACH}.
这意味着,当你尝试保存预订时,reservationDAO.save(reservation)
它还将尝试保留关联的Product对象。但是此对象未附加到此会话。因此发生错误。