【发布时间】:2013-04-24 11:33:29
【问题描述】:
这是我第一次开发 Java 应用程序并立即遇到问题。现在我有一个如下的 SQL 查询:
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查询吗?
-
我正在使用:
javax.persistence.criteria.Join -
您能解释一下并给我们更多细节
-
这意味着您正在尝试构建条件查询。这不是唯一的方法,您还可以使用jpql 编写查询,这对初学者来说更容易。无论如何,如果您想要条件查询,请使用相应的标签并注意在 SO 上 theres 有价值的答案。如果您仍然需要帮助,请发布实体以及您已经完成的工作
-
我只是更新我的问题,谢谢,伙计们。
标签: java jpa criteria-api