我正在尝试学习vaadin。我真的很困惑如何做持久性的任何类型的应用程序开发,因为如果我有一个对我的服务层对象的引用,他们会存储在会话中,我真的不希望这样。持久性内容不可序列化。Vaadin持久性
我的情况是,我有一个使用Spring的应用程序,我正在用它为Vaadin创建一个新的UI。我可以将spring东西注入到我的Vaadin应用程序中,但它会存储在会话中。有小费吗?
顺便问一下,您如何在Vaadin论坛发帖?我无法找到发布按钮或注册方式:)
我正在尝试学习vaadin。我真的很困惑如何做持久性的任何类型的应用程序开发,因为如果我有一个对我的服务层对象的引用,他们会存储在会话中,我真的不希望这样。持久性内容不可序列化。Vaadin持久性
我的情况是,我有一个使用Spring的应用程序,我正在用它为Vaadin创建一个新的UI。我可以将spring东西注入到我的Vaadin应用程序中,但它会存储在会话中。有小费吗?
顺便问一下,您如何在Vaadin论坛发帖?我无法找到发布按钮或注册方式:)
似乎Vaadin书涵盖了这个问题。他们推荐的解决方案是使用ThreadLocal来存储服务对象。 ThreadLocal在应用程序类的transactionStart和transactionEnd中初始化并销毁。
在Vaadin书更详细的说明:http://vaadin.com/book/-/page/advanced.global.html
在Vaadin持久性数据未存储在您的会话中,因此您不必担心这一点。
对不起,我不明白。持久性数据如何不存储在会话中?如果应用程序存储在会话中,并且我的应用程序引用了EntityManager(JPA)或数据源,那么这些存储在哪里? – palto 2011-01-02 07:40:56
我用Vaadin冬眠。我的主要应用程序类有一个会话工厂方法:
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类,你填充这个类的一个实例,然后用合并来持久化对象:
getSession().merge(o);
下面是来自Vaadin的详细解释维基:
我的建议:
TreeTable
困难的 - 见issue #9516)这是一个古老的问题,现在我再次阅读,难怪我不断得到我没有的问题的答案:)这并不完全清楚我的实际问题是什么,所以在这里: 我的问题是您正在谈论的实际“负载”操作。要加载或持久化数据,我有一个处理持久性和事务的MyObjectRepository。要加载或持久化对象,我必须在我的Vaadin类中引用此MyObjectRepository。 MyObjectRepository的问题在于它不能被序列化,因为它具有数据库连接和所有其他的东西。 – palto 2012-09-17 06:21:29
如果您使用的是Spring,请尝试[Spring Stuff](https://vaadin.com/directory#addon/spring-stuff)加载项。 – Archie 2012-09-17 13:59:13
嘿,这似乎是一个优秀的图书馆!我必须尝试一下。 – palto 2012-09-19 07:39:04
你试过这http://vaadin.com/directory#addon/enterprise-app。 这个附加使用spring和hibernate。
您必须注册才能发布论坛里的问题。点击页面顶部的“加入Vaadin”,它会将您带到登录屏幕,然后点击“创建帐户”并注册。登录后即可进入论坛,选择一个类别。在该页面上,搜索框旁边有一个“发布新帖子”按钮。 – 2010-08-13 11:16:02
哦,没有看到加入Vaadin文本。它太小了:) – palto 2010-08-14 16:34:10
你可以使用@Configurable,参见我自己的描述:http://info.michael-simons.eu/2013/03/12/vaadin-spring-using-configurable-in-vaadin-components/这些服务可以标记为瞬态并且在反序列化后再次自动装配。 – 2013-10-10 10:58:02