gpt4 book ai didi

java - ORA-01400 : Error while inserting Foreign Key using Hibernate

转载 作者:行者123 更新时间:2023-12-02 04:53:46 25 4
gpt4 key购买 nike

我有两个表AB,其外键从B到名为FK_A。我对 FK_A 有一个not null 约束。

我有以下两个类(class):

@Entity
@Table(name = "A")
public class A {

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "ID")
private long id;

@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name = "FK_A", nullable = true)
private Set<B> b;

//getters setters etc.
}


@Entity
@Table(name = "B")
public class B {
//attributes, getters setters etc.
}

读取工作正常,但当我尝试将 A 写入数据库时​​,我得到: ORA-01400: 无法将 NULL 插入 ("SCHEMA"."B"."FK_A")

我尝试插入实体的代码如下所示:

@PersistenceContext(unitName = "ab")
private EntityManager em;

A a = new A();
B b = new B();

Set<B> bList = new HashSet();
bList.add(b);
a.setB(bList);

em.persist(a);

现在,如果我是正确的, hibernate 不应根据自动生成的 id 自动填充表 B 中的 FK_A 。如果没有,我该如何设置它?

最佳答案

看一下mappedBy OneToMany.mappedBy()。 Java文档:

The field that owns the relationship. Required unless the relationship is unidirectional.

它是 Hibernate 关键字“inverse”的同义词。

另请参阅this question .

此外,作为变体,您的类 B 可能具有使用 @ManyToOne(Optional = false) 注释声明的类 A 的属性。

关于java - ORA-01400 : Error while inserting Foreign Key using Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31827001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com