代码之家  ›  专栏  ›  技术社区  ›  palto

瓦丁的持久性

  •  3
  • palto  · 技术社区  · 14 年前

    顺便问一下,你怎么在瓦丁论坛发帖?我找不到发布按钮或注册方法:)

    5 回复  |  直到 14 年前
        1
  •  1
  •   Archie    12 年前

    我的建议:

    • 将容器定义为只包含 演示
    • 定义一个“加载”操作,该操作在事务中加载持久数据对象,并将它们转换为支持容器的相应表示对象。
    • TreeTable -看到了吗 issue #9516 )
        2
  •  1
  •   Kevin    12 年前
        3
  •  0
  •   palto    13 年前

    似乎瓦丁的书涵盖了这个问题。他们推荐的解决方案是使用ThreadLocal来存储服务对象。ThreadLocal在应用程序类的transactionStart和transactionEnd中初始化和销毁。

    瓦丁书中有更详细的说明: http://vaadin.com/book/-/page/advanced.global.html

        4
  •  0
  •   anataliocs    12 年前

    我用冬眠和瓦丁。我的主应用程序类有一个会话工厂方法:

        public Session getSession() {
        Session currentSession = HibernateUtil.getSessionFactory()
                .getCurrentSession();
        if(!currentSession.getTransaction().isActive()) {
            currentSession.beginTransaction();
        }
        return currentSession;
    }
    

    然后我有一个服务层,它使用HQL命名查询,然后以列表的形式返回数据。

        public List<DataClass> getEntriesforDate(Date date, Integer key) {
        return mainApp.getSession().getNamedQuery(DataClass.NAMEDQUERY)
                .setParameter("key", key).list();
    }
    

    为了保存,您只需将一个ORM类映射到一个表,就可以填充该类的一个实例,然后使用merge持久化该对象:

    getSession().merge(o);
    

    以下是Vaadin Wiki的详细说明:

    Hibernate with Vaadin

        5
  •  -2
  •   yazz.com    14 年前