Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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
Hibernate nullable=true不在@manytone关系中工作_Hibernate_Many To One - Fatal编程技术网

Hibernate nullable=true不在@manytone关系中工作

Hibernate nullable=true不在@manytone关系中工作,hibernate,many-to-one,Hibernate,Many To One,这是我的设想, 我有车,要么属于经销商,要么属于用户(不是同时属于两者) 因此,我的汽车实体与经销商和用户有@manytone关系,但其中一个必须为null,因此我在这两个实体中都添加了null=true,以支持这一点 这是我的代码: @Entity @Table(name = "car") @XmlRootElement public class Car implements Serializable{ @Id @Column(name = "id", unique = t

这是我的设想, 我有车,要么属于经销商,要么属于用户(不是同时属于两者)

因此,我的汽车实体与经销商和用户有@manytone关系,但其中一个必须为null,因此我在这两个实体中都添加了null=true,以支持这一点

这是我的代码:

@Entity
@Table(name = "car")
@XmlRootElement
public class Car  implements Serializable{

    @Id
    @Column(name = "id", unique = true, nullable = false, columnDefinition = "serial")
    @SequenceGenerator(name = "pk_sequence", sequenceName = "car_id_seq", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pk_sequence")
    @Generated(GenerationTime.INSERT)
    private Long id;

    @ManyToOne
    @JoinColumn(name = "dealer", nullable = true)
    private Dealer dealer;

    @ManyToOne
    @JoinColumn(name = "user", nullable = true)
    private User user;
但是,当我尝试在没有经销商的情况下插入一辆车时,我得到以下结果:

错误:“经销商”列中的空值违反非空约束

我知道这是因为Hibernate在数据库中生成了一个外键限制。但是: -“nullable=true”的原因是什么? -如果我需要@ManyToOne关系,但它可以为空,我如何解决这个问题


谢谢。< /P>你应该使用“代码”> ManyToOne(可选=真)< /Cuff>为经销商,Useryou也可以考虑使用MytoToNo映射,也许这个博客可以帮助你,你应该使用<代码> ManyToOne(可选=真)< /Cuff>为经销商,Useryou也可以考虑使用很多ToNo映射,也许这个博客可以帮助你。