目前正在處理包含 insertOrder 函式和我的 Order 域的 OrderDao
private Products pId
public void setPId(Products pId) { this.pId = pId }
所以當我嘗試在我的 OrderDao 中設定一個 pid
public Orders insertOrder(int pid) {
Orders order = new Orders();
try {
manager.getTransaction().begin();
order.setPId(pid);
manager.persist(order);
manager.getTransaction().commit();
}catch (Exception e) {
e.printStackTrace();
}
return order;
}
出現問題:int 不能轉換為 Products
這是我第一次嘗試Java,有沒有辦法解決它?
uj5u.com熱心網友回復:
public void setPId(Products pId) { this.pId = pId }
你在這里弄錯了,setter 期待一個 Product 物件,但你傳遞了一個 Integer
uj5u.com熱心網友回復:
如您所述,public void setPId(Products pId)“訂單”類的方法獲取“產品”物件作為引數。但是您傳遞的是一個“int”數字。替換public void setPId(Products pId)為public void setPId(int pId)應該可以解決問題。
順便說一句,對像 Order 和 Product 這樣的類名使用單數名稱通常是一個好習慣。
uj5u.com熱心網友回復:
假設您有一個接受其 id 的 Products 建構式:
order.setPId(new Products(pid));
uj5u.com熱心網友回復:
正如我們所知,它是一個 ORM 框架,它隱含地理解物件,除非您使用本機查詢在表中插入 productId。所以,每當我們有物體到物體的關系時,我們只使用物件參考來存盤它。
在這種情況下,方法應該是:
public void setProduct(Product product){ }
考慮到 OneToOne 映射已經完成的訂單類內部。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/454161.html
上一篇:FK指向各種表的JPA建模
