这是我的问题。 我定义了两个类:
@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存储库保存汽车对象。该汽车装有一个Brand对象,该对象只有一个品牌ID。
Car myCar = new Car();
Brand myBrand = new Brand();
myBrand.setIdBrand(11l);
myCar.setIdBrand(myBrand);
repository.save(myCar);
谢谢。
答案 0 :(得分:-1)
您需要使“ BRAND_ID”列在数据库中可为空,显然该列当前为“不为空”。
不确定该表是否使用休眠方式生成。