Hibernate nullable=true不在@manytone关系中工作
这是我的设想, 我有车,要么属于经销商,要么属于用户(不是同时属于两者) 因此,我的汽车实体与经销商和用户有@manytone关系,但其中一个必须为null,因此我在这两个实体中都添加了null=true,以支持这一点 这是我的代码: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
@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映射,也许这个博客可以帮助你。