Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @OneTONE不保存子信息_Java_Spring_Hibernate_Spring Data Jpa - Fatal编程技术网

Java @OneTONE不保存子信息

Java @OneTONE不保存子信息,java,spring,hibernate,spring-data-jpa,Java,Spring,Hibernate,Spring Data Jpa,这是我的问题。 我有两类定义如下: @Entity @Table(name = "CAR") public class Car{ @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "CAR_ID", nullable = false) private Long idCar; @NotFound(action = NotFoundA

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

@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”字段没有默认值 似乎它试图保存在品牌数据库中,但我只需要在Car对象中保存BRAND列

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

编辑: 我试图用JPA存储库保存一个car对象。这辆车装满了一个品牌对象,只有一个品牌ID

Car myCar = new Car();
Brand myBrand = new Brand();
myBrand.setIdBrand(11l);
myCar.setIdBrand(myBrand);
repository.save(myCar);
提前感谢。

您需要将数据库中的“BRAND_ID”列设置为空,显然该列当前为“not null”


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

主密钥不能为空。此外,OP询问如何不在表
brand
中保存品牌,而只在表
CAR
中保存品牌(这对我来说有点不清楚)。感谢您的回答,这些表不是由Hibernate生成的。品牌标识列是品牌表中的主键。我把它设为NULL,默认值为NULL,但它仍然给我同样的错误。主键不能为NULL,但外键可以为nulable。Hi@Seelenvirtuose,问题是我有一个装满了很多品牌的表,它是汽车的可选值,我不需要在Brands中插入更多值。您是否尝试了
OneToOne.optional
属性?是的,我尝试了此组合,但也没有成功:@ManyToOne(targetEntity=PageInfo.class,fetch=FetchType.LAZY,cascade=CascadeType.DETACH,optional=true)“我有一个表格,里面有很多品牌,这是汽车的可选值,我不需要在品牌中插入更多的值”。然后加载一个品牌,将其与汽车关联,然后保存汽车。您的问题没有显示代码,您试图保存任何数据。我尝试的是使用JPA存储库保存汽车对象。存储库。保存(myCar),wich将有一个品牌对象,填充idBrand。Hi@ThomasTimbul,可选属性有效!我之前写错了,很抱歉,谢谢你的评论!