這是我第一次開發Java應用程序並立即面臨問題。現在我有一個SQL查詢如下:在JPA中加入3個實體
Select PD.* From product PD
join Stock SP on PD.id = SP.product_id
join storage SR on SR.id = SP.storage_id
join status ST on ST.storage_id = SR.id
where ST.id ='1qa7n234i'
我的實體:
public class Product extends MainEntity {
public Product(){}
public void setAtcKey(String pAtcKey) {
atcKey = pAtcKey;
}
}
public class StockPosition extends MainEntity {
public StockPosition(){}
@XmlIDREF
public Product getProduct() {
return product;
}
public void setProduct(Product pProduct) {
product = pProduct;
}
@XmlIDREF
public Storage getStorage() {
return storage;
}
public void setStorage(Storage pStorage) {
storage = pStorage;
}
}
public class Storage extends MainEntity {
public Storage(){}
@XmlTransient
public Station getStation() {
return station;
}
public void setStation(Station pStation) {
station = pStation;
}
}
public class Status extends MainEntity {
public Status(){}
}
所以我將它轉換爲CriteriaQuery中,如:
CriteriaBuilder cb = getCriteriaBuilder();
CriteriaQuery<Product> query = cb.createQuery(Product.class);
Root<Product> product = query.from(Product.class);
Join<StockPosition, Product> sp = product.join(StockPosition_.product);
但我得到了像The method join(SingularAttribute<? super Product,Y>) in the type From<Product,Product> is not applicable for the arguments (SingularAttribute<StockPosition,Product>)
錯誤消息?這個消息對我來說很奇怪(因爲我是新手)。謝謝
你的意思是HQL查詢? – sanbhat 2013-04-24 11:35:39
我正在使用:'javax.persistence.criteria.Join' – 2013-04-24 11:37:14
您能否解釋更多並給我們更多詳細信息 – Khalil 2013-04-24 11:42:02