这是我的问题。我有两个类定义如下:
@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数据库中,但我只需要在BR对象中保存BRAND 。
另一方面,如果我获得了一辆汽车,并且保存了一个品牌,我会正确地恢复它。
编辑:我正在尝试用JPA存储库保存汽车对象。这辆车装满了品牌对象,只有品牌ID。
Car myCar = new Car();
Brand myBrand = new Brand();
myBrand.setIdBrand(11l);
myCar.setIdBrand(myBrand);
repository.save(myCar);
提前致谢。
您需要在数据库中使“BRAND_ID”列可为空,显然该列当前“非空”。
不确定表是否是使用hibernate生成的。