@OneToOne没有保存子信息

问题描述 投票:0回答:1

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

@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);

提前致谢。

java spring hibernate spring-data-jpa
1个回答
-1
投票

您需要在数据库中使“BRAND_ID”列可为空,显然该列当前“非空”。

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

© www.soinside.com 2019 - 2024. All rights reserved.