@OneToOne而不保存子信息



这是我的问题。 我有两个分支定义如下:

@Entity
@Table(name = "CAR")
public class Car{
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "CAR_ID", nullable = false)
        private Long idCar;
        @NotFound(action = NotFoundAction.IGNORE)
        @JoinColumn(name="BRAND")
        @OneToOne(targetEntity = Brand.class, fetch = FetchType.LAZY, cascade=CascadeType.DETACH)
        private Brand idBrand;
}
@Entity
@Table(name = "BRAND")
public class Brand{
       @Id
       @Column(name = "BRAND_ID")
       private Long idBrand;
       @Column(name = "DESCRIPTION")
       private String description;
}

我需要在不保存品牌信息的情况下保存汽车。如果我尝试按现在保存,则会出现数据库错误:字段"BRAND_ID"没有默认值 似乎它试图保存在 BRAND 数据库中,但我只需要将列 BRAND 保存在 Car 对象中。

另一方面,如果我买了一辆汽车,保存了一个品牌,我会正确地恢复它。

编辑: 我正在尝试的是使用 JPA 存储库保存汽车对象。这辆车充满了一个品牌对象,只有一个品牌ID。

Car myCar = new Car();
Brand myBrand = new Brand();
myBrand.setIdBrand(11l);
myCar.setIdBrand(myBrand);
repository.save(myCar);

提前谢谢。

您需要使数据库中的"BRAND_ID"列为空,显然该列当前为"不为空"。

不确定表是否是使用休眠生成的。

最新更新