Chr*_*ams 5 java hibernate jpa one-to-many
我有两个实体之间的多对一映射(A和B,一个B可以与许多As相关联),我需要能够在A(A.B_ID)上获得B的ID,其中特定的B实体不存在于数据库中.这可能吗?
我们代码的一个(简化)示例:
@Entity
@Table(name = "A")
public class A implements java.io.Serializable {
// ...
private B b;
// ...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "B_ID")
public B getB() {
return this.b;
}
// ...
}
@Entity
@Table(name = "B")
public class B implements java.io.Serializable {
// ...
private Set<A> as = new HashSet<A>( 0 );
// ...
@OneToMany( fetch = FetchType.LAZY, mappedBy = "b" )
public Set<A> getAs() {
return this.as;
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
这个基本设置最终会让Hibernate试图为A.B_ID保存一个null值,而这是不允许的:
Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("MY_SCHEMA"."A"."B_ID")
Run Code Online (Sandbox Code Playgroud)
为了澄清,如果实体尚不存在,我不希望它被创建.我只想在数据库中插入没有B的A.两个表之间没有外键约束.
@NotFound我在侧面使用注释@ManyToOne来确保它不会导致任何错误。不过,我还没有尝试过双向关系。
请注意,这是 Hibernate 特定的注释!
例子:
@NotFound(action=NotFoundAction.IGNORE)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2365 次 |
| 最近记录: |