我有一个Spring Data JPA项目,我的实体如下
@Entity
@Table(name = "delivery_offers")
public class DeliveryOffer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToOne
@JoinColumn(name = "DELIVERY_ID")
private Delivery delivery;
... other fields
该表还有一个DELIVERY_ID的外键,它引用了DELIVERY.ID
我的Dao是一个JpaRepository对象,我尝试使用dao.saveAndFlush(deliveryOffer)来保存DeliveryOffer。 我也设置了delivery.id = xy 我想返回持久化的DeliveryOffer对象,所以我在我的控制器中创建
return dao.saveAndFlush(deliveryOffer)
问题是,在返回的DeliveryOffer中,引用的Delivery对象字段除了id之外都是null,我为deliveryOffer.delivery.id设置了id(交付存在于具有给定id的DB中)
如果我尝试使用findOne从最近的事务中获取“较旧”的deliveryOffer,则会正确填充引用的传递。
所以我想,它必须对交易做些什么。我想,saveAndFlush会立即提交它,所以在返回对象中我会等待正确的实体。
你有一个想法,为什么此时交货是空的?