2013-03-01 84 views
1

這是我的第一個應用程序。我有gwt(rpc)和我的db(MySQL)之間的問題。 JUnit測試運行良好。這裏是我的代碼:https://github.com/sutakjakub/gameGWT RPC,Spring,JPA/Hibernate - null回調方法

客戶包:

UserService.Util.getInstance().addUser("kuba","tajne", 
new AsyncCallback<Long>() { 

@Override 
public void onFailure(Throwable arg0) { 
Window.alert("get se nezdaril" + arg0); 

} 

@Override 
public void onSuccess(Long id) { 
if(id == null){ 
Window.alert("null"); 
}else{ 
Window.alert("zapsano do db; id=" + id); 
} 

} 

}); 

此方法必須返回新用戶的ID,但它返回null(在方法的onSuccess(長ID))。

我沒有一些錯誤日誌。我嘗試了幾乎所有東西 非常感謝您的一些想法或解決方案。

回答

0

更新的實體不會從您的saveOrUpdate方法(GenericHibernateJpaDao)返回:

@Override 
public <ENTITY extends AbstractBussinessObject> ENTITY saveOrUpdate(ENTITY o) { 
    if(o.getId() == null){ 
    getEntityManager().persist(o); 
    }else{ 
    getEntityManager().merge(o); 
    } 
return o; 
} 

應該改爲:

return getEntityManager().merge(o); 

如果你想用堅持(),那麼你或許應該閱讀this

+0

不幸的是,這沒有解決我的問題: - /。我可以問你...爲什麼我的測試功能,但呼籲在GWT不?我不明白。 非常感謝:) – user1805440 2013-03-07 19:08:42

+0

1)您的LOG中(在UserServiceImpl中)是否顯示關聯的ID? 2)您的測試調用us.addUser(null,「secrete」)(例如),它將返回null,因爲您在創建帳戶之前檢查兩個參數是否爲!= null,並且返回值最初設置爲null。我沒有運行它們,因爲你在現有的MySQL數據庫上執行這些數據庫(內存數據庫會更好)。 – 2013-03-07 19:39:49

+0

在web.xml中:mode =「aspectj」解決了我在行 上的問題' user1805440 2013-03-19 15:34:28