0
我在J2EE應用程序中的數據庫的基本CRUD操作中遇到問題。爲什麼我的update()方法創建一個新的實例?
實體:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "shop_id")
門面:
public abstract class AbstractFacade<T> {
private Class<T> entityClass;
public void edit(T entity) {
getEntityManager().merge(entity);
}
}
控制器(我加S.out的看個究竟):
public String updateShop(Shop shop){
System.out.println("Update ");
System.out.println(this.shop.getName()+" - ID: "+ this.shop.getShopId());
this.shop = shop;
return "updateShop";
}
public String updateShop(){
System.out.println("UpdateClick ");
System.out.println(this.shop.getName()+" - ID: "+ this.shop.getShopId());
this.shopfacade.edit(this.shop);
return "shops";
}
當我點擊更新,一新實例被創建而不是修改現有的實例。這是服務器的日誌輸出:
Info: Update
Info: Name - 41
Info: UpdateClick
Info: ChangedName - null
因此,該Id以某種方式消失。這發生在我調用updateShop()的那一刻,因爲我在我的JSF頁面上顯示了ID,並且它工作正常。
<h:outputText value="#{shopController.shop.shopId}" title="shopId" />
任何想法是怎麼回事?
感謝。
我們需要看到你的JSF的其餘部分知道什麼是綁定到店 – Miles
很好,普通的問題在JSF中,如果你正確因此未綁定的對象。如果您沒有解決問題,請正確發佈JSF代碼和控制器.. –