我想重新創建this old NetBeans hibernate-webapp tutorial。所有的項目都使用JSF託管的bean從MySQL數據庫中檢索數據。休眠4.3,與JavaServer Faces使用Netbeans,返回零行表
我有以下問題,我以爲是因爲我使用的是較新的軟件版本,但我想知道需要什麼樣的調整,該項目使用較新版本的工作:
我能夠顯示檢索到的數據的最初10行,這是在NetBeans中執行'run'時在瀏覽器中顯示的數據。然而,當我點擊呈現網頁中的鏈接來顯示下面的10個結果時,我收到一個空表(沒有錯誤消息,列標題存在,但沒有數據行,只有一行空細胞呈現)。
我已經改變了教程使用StandardServiceRegistryBuilder,如解釋here。另外,我在FilmController.java中使用@Named(value =「filmController」)而不是@MessageBean。
- 我的設置是:
- 休眠4.3
- 的NetBeans 8.1
- Glassfish的4.1.1
- MySQL的連接器的Java-39年5月1日 - bin.jar
- JSF 2.2
- JDK 1.8.0_92
我曾嘗試使用WildFly而不是GlassFish,但我得到完全相同的問題。
第1頁呈現正確的事實表明沒有語法錯誤。
問題似乎是我如何嘗試從瀏覽器中檢索數據。在FilmHelper.java了我在檢索以下方式的數據很多方法:
List<Actor> actorList = null;
try {
org.hibernate.Transaction tx = session.beginTransaction();
Query q = session.createQuery (...some tested query);
actorList = (List<Actor>) q.list();
} catch (Exception e) {
e.printStackTrace();
}
(但正如我所說,這些方法很好地工作在項目第一初始化。)
總結:祝要知道爲什麼數據在網頁第一次初始化時正確地從MySQL加載,但是當隨後單擊超鏈接時不從數據庫檢索和/或顯示更多數據。
只需運行一個調試器。或者如果你不能,只需在關鍵位置添加一堆'System.out.println()'行,打印感興趣的變量。無論哪種方式,最後只是在分析實際代碼流和實際變量值的同時,利用人力邏輯思維能力。 – BalusC