我在我的项目中使用 gwt 和 postgres。在前端,当我单击“保存项目”按钮时,我试图将其数据保存到后端的表中(这也是创建项目的名称)。
在异步回调部分,我设置了多个表。但它没有正确发送数据。我收到以下错误:
org.postgresql.util.PSQLException: ERROR: insert or update on table "entitytype" violates foreign key constraint "entitytype_pname_fkey"
Detail: Key (pname)=(Project Name) is not present in table "project".
但是当我在项目表上执行选择语句时,我可以看到项目名称存在。
回调部分如下所示:
oksave.addClickHandler(new ClickHandler(){
@Override
public void onClick(ClickEvent event) {
if(erasync == null)
erasync = GWT.create(EntityRelationService.class);
AsyncCallback<Void> callback = new AsyncCallback<Void>(){
@Override
public void onFailure(Throwable caught) {
}
@Override
public void onSuccess(Void result){ }
};
erasync.setProjects(projectname, callback);
for(int i = 0; i < boundaryPanel.getWidgetCount(); i++){
top = new Integer(boundaryPanel.getWidget(i).getAbsoluteTop()).toString();
left = new Integer(boundaryPanel.getWidget(i).getAbsoluteLeft()).toString();
if(widgetTitle.startsWith("ATTR")){
type = "regular";
erasync.setEntityAttribute(name1, name, type, top, left, projectname, callback);
} else{
erasync.setEntityType(name, top, left, projectname, callback);
}
}
}
问题:
- 在所有其他表都依赖于特定表的异步回调中设置多个是否错误?
- 当我在上面的代码中说 setProjects 时,它不是先完成然后移动到下一个吗?
请任何输入将不胜感激。
谢谢你。