2013-03-05 66 views
0

我使用Hibernate保存与其他表有关系的表的记录,但我需要允许空引用,而不保存子对象。休眠 - 允许引用未保存的瞬态实例

这就是这样的情况:类A有相关的对象b和c,当我保存一个A实例时我想保存b和c的空引用。

表结构如下:

id (PK) | id_tr_inner_costs | release_id | requirement_id | task_id | hours | total_cost 

requirement_id和/或TASK_ID可以为空,并且应在这种情况下被设定成。

可能吗?

谢谢

+1

你是什么意思'保存空引用'?也许你可以添加你的表结构,以及你想要的列值是什么? – sharakan 2013-03-05 16:11:58

+0

@sharakan:嗨,谢谢你的回答。氏是我的表结构:ID, id_tr_inner_costs, RELEASE_ID, requirement_id(此引用其它表,并可能为空), TASK_ID(此引用其它表,这可能为空), 小时, TOTAL_COST – 2013-03-05 16:14:39

+0

哪里编辑? – hop 2013-03-05 16:15:44

回答

0

如果在保存时引用为空,Hibernate会将这些ID设置为null。因此,像这样:

A instanceOfA = ...; 
instanceOfA.setRelease(null); 
instanceOfA.setTask(null); 
session.save(instanceOfA); 

应导致你在具有NULL两个release_idtask_id的一个表有一行。

这在Hibernate docs很淡然详述:

随着收藏品外,所有的Hibernate内建类型 支持null语义。

即,如果Java中的某些内容为空,那么它将在数据库中为空。