【发布时间】:2018-08-07 11:38:16
【问题描述】:
这是我的问题。 我有两个这样定义的类:
@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);
提前致谢。
【问题讨论】:
-
你试过
OneToOne.optional属性吗? -
是的,我尝试了这种组合,但也没有用:@ManyToOne(targetEntity = PageInfo.class, fetch = FetchType.LAZY, cascade=CascadeType.DETACH, optional=true)跨度>
-
“我有一张表,里面有很多品牌,它是 Car 的可选值,我不需要在 BRANDS 中插入更多值”。然后加载一个品牌,将其与汽车相关联,然后保存汽车。您的问题没有显示代码,您尝试在其中保存任何数据。
-
我试图用 JPA 存储库保存一个 Car 对象。 repository.save(myCar),其中将有一个 Brand 对象,其中填充了 idBrand。
-
嗨@ThomasTimbul,可选属性有效!我之前写错了,对此感到抱歉,感谢您的评论!
标签: java spring hibernate spring-data-jpa