我有一个带有@ConversationScoped
bean 的 Seam 3/JBoss/Hibernate 项目。此 bean 管理@Entity
. 我希望能够保存对实体所做的任何更改并将用户保留在当前页面上。
@Named
@Stateful
@ConversationScoped
public class TeamManagementBean implements Serializable {
@PersistenceContext(type = PersistenceContextType.EXTENDED)
private EntityManager entityManager;
@Inject
Conversation conversation;
@Inject
FlushModeManager flushModeManager;
protected Team team;
@Inject
@CurrentUser
private User currentAccount;
@Begin
public void loadTeam(Team team) {
if(conversation.isTransient()) conversation.begin();
flushModeManager.setFlushModeType(FlushModeType.MANUAL);
this.team = team;
}
public void save() {
if(team.isUnsaved()) entityManager.persist(team);
entityManager.flush();
}
调用时save()
,对话中的实体会更新(即更改出现在对话和网页上。但是,即使我结束对话,数据也不会写入数据库。
在站点的另一部分,我能够通过在调用该方法faces-config.xml
时重定向到不同的页面来更新数据库中的实体。save()
但我想在保存此实体时将用户保持在同一页面上。