GWT RPC、Spring、JPA/Hibernate-回调方法为空
这是我的第一个应用程序。我在gwt(rpc)和我的db(MySQL)之间有问题。JUnit测试运行良好。这是我的密码: 客户端包:GWT RPC、Spring、JPA/Hibernate-回调方法为空,hibernate,Hibernate,这是我的第一个应用程序。我在gwt(rpc)和我的db(MySQL)之间有问题。JUnit测试运行良好。这是我的密码: 客户端包: UserService.Util.getInstance().addUser("kuba","tajne", new AsyncCallback<Long>() { @Override public void onFailure(Throwable arg0) { Window.alert("get se nezdaril" + arg0); }
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);
}
}
});
UserService.Util.getInstance().addUser(“kuba”,“tajne”,
新的AsyncCallback(){
@凌驾
失败时公共无效(可丢弃arg0){
Window.alert(“获取se nezdaril”+arg0);
}
@凌驾
成功时公共无效(长id){
if(id==null){
窗口警报(“空”);
}否则{
Window.alert(“zapsano do db;id=“+id”);
}
}
});
此方法必须返回新用户的id,但返回null(在方法onSuccess(Long id)中)
我没有一些错误日志。我几乎什么都试过了。
非常感谢您提供的一些想法或解决方案。更新的实体不会从您的saveOrUpdate方法(GenerichBernateJPADAO)返回:
如果您想使用persist(),那么您可能也应该阅读。不幸的是,这并没有解决我的问题:-/。我可以问你。。。为什么我的测试是功能性的,而调用gwt不是?我不明白。非常感谢:)1)相关ID在您的日志(UserServiceImpl)中可见吗?2) 您的测试调用us.addUser(null,“secret”)(例如),它将返回null,因为您检查了两个参数的!=null,在创建帐户之前,返回值最初设置为null。我没有严格地运行它们,因为您可以在现有的MySQL数据库上执行它们(内存中的DB会更好)。在web.xml:mode=“aspectj”中,解决了我的问题
@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);