Hibernate的MANUAL刷新模式

来源:互联网 发布:知肤泉水光面膜多少钱 编辑:程序博客网 时间:2024/05/14 11:38

使用Hibernate的MANUAL刷新模式扩展的应用程序事务是在对话范围中控制的。Seam可以透明地管理刷新模式扩展。

如果将@Begin注解中的flushMode属性(或者页面描述符标签<begin-conversation>中的flush-mode属性)设置为MANUAL,Seam就会在对话启动时将持久化管理器转换成手工刷新。

@Begin(flushMode = FlushModeType.MANUAL)

public void beginApplicationTransaction () {...}

可以在组件描述符中全局的设置默认的刷新模式:

<core:manager default-flush-mode="MANUAL" ../>

应用程序事务的MANUAL刷新模式代码示例:

... @Name("   ")@Scope(ScopeType.CONVERSATION)@Transactionalpublic class ... implements Serializable {   @In private EntityManager em;   @RequestParameter private Long facilityId;  @Out private Course course;  @Begin(flushMode = FlushModeType.MANUAL)  //启动应用程序事务 public void addCourse () {   course = new Course ();   course.setFacility (        mentityManager.find(Facility.class,facilityId));        entityManager.persist(course);   //不将变更刷到数据库  } @Begin(flushMode = FlushModeType.MANUAL)  //启动应用程序事务public void editCourse (Long id) {      course = em.find(Course.class,id);}public String submitBasicInfo() {    //不将变更刷新到数据库    return "next";}...@End public String save () {    em.flush();//将变更刷新到数据库}}


0 0
原创粉丝点击