我正在嘗試學習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