将jpaf实体存储在jsf支持bean中作为属性

时间:2013-03-20 22:24:30

标签: jsf jpa

在我的jsf bean的init方法中,我正在调用从数据库中获取对象的服务。我们正在使用hibernate。此init方法预先填充表单上的值。用户进行编辑并在提交时调用另一个方法来捕获编辑并更新数据库中的该对象。现在,此时我可以将在init方法中检索的数据库对象存储为支持bean上的属性,或者我可以在jsf bean中调用的submit方法中再次检索原始数据库对象(但这是对db / cache的另一个调用) )。这里有首选方式吗?

2 个答案:

答案 0 :(得分:0)

  1. 将检索到的实体实例放入会话中。
  2. 使用value="#{sessionScope.xxx.xxx}"
  3. 将表单字段的目标设置为每个映射到的字段
  4. 在提交时,您可以在会话中mergepersist实例。

答案 1 :(得分:0)

第一种方式(存储分离的实体并将其合并到提交上)更好,特别是当与版本字段一起使用时(参见Java - JPA - @Version annotation),因为它提供了一种检测陈旧实体的方法。