如何使用EnitityHome持久化方法在SEAM中持久保存子实体?

时间:2011-09-30 09:12:24

标签: hibernate seam

我有两个实体,一对一的关系,即Customer和CustomerDetails映射到他们的特定表。

我在页面中有一个表单,用于捕获每个实体属性的每个值。

我如何在SEAM中坚持这个? 因为我的命令按钮只指向CustomerHome.persist()

的一个动作方法

我所做的是将表单中的值分配给CustomerDetails的属性,如

value="#{customerHome.intance.customerDetails.address}"

但我收到的错误是customerDetails解析为null。

另一项工作是在我的CustomerHome持久化方法中有两个持久化方法,它持久保存两个实体但我得到另一个错误,即在调用save之前必须先分配CustomerDetails的ID。

有没有人可以让我清楚这件事? 我是全新的SEAM。

2 个答案:

答案 0 :(得分:0)

如果您直接从IDE复制了该代码,那么错字可能是您遇到问题的原因:

value="#{customerHome.intance.customerDetails.address}"

应该是

value="#{customerHome.instance.customerDetails.address}"

答案 1 :(得分:0)

你使用seam-gen吗?

尝试查看由seam-gen

生成的项目

他们使用“线”方法初始化关系。

基本上在创建实例时,请确保所有关系都指向各自的fooHome.instance对象。

然后在你的persist方法中,首先调用关系的EntityHome的persist方法。