【发布时间】:2018-05-28 10:19:07
【问题描述】:
假设我们使用以下 SQL 创建 2 个表:
create table Supplier (id int, name VARCHAR, count int);
create table Product (id int, name VARCHAR, description VARCHAR, price double, supplierId int);
型号:
公共类供应商{
private int id;
private String name;
private int count;
public int getId(){ return id;}
public void setId(int id){ this.id = id; }
public String getName(){ return name;}
public void setName(String name){ this.name = name;}
public int getCount() { return count;}
public void setCount(int count) { this.count = count;}
}
与
public class Product {
private int id;
private String name;
private String description;
private Double price;
private Supplier supplier;
public int getId() { return id;}
public void setId(int id) { this.id = id; }
public String getName() { return name;}
public void setName(String name) { this.name = name;}
public String getDescription() { return description;}
public void setDescription(String description) { this.description = description; }
public Double getPrice() {return price;}
public void setPrice(Double price) { this.price = price;}
@OneToOne(targetEntity=ProductAssignment.class, mappedBy = "supplierId", fetch = FetchType.LAZY)
public Supplier getSupplier() { return supplier;}
public void setSupplier(Supplier supplier) { this.supplier = supplier; }
}
如果我想按供应商数量选择所有产品订单,我可以使用以下代码:
Criteria crit = session.createCriteria(Product.class);
Criteria critSupplier = crit.createCriteria("supplier");
critSupplier.addOrder(Order.desc("count"));
但是现在,我想在产品表中按价格选择所有供应商订单。
如果我想使用 MySQL,下面是脚本:
select * from supplier s inner join product p ON s.id = p.supplierId order by p.price
现在我想将这个 SQL 转换为 java 代码中的 Hibernate Criteria 查询?
在这种情况下请帮助我吗?
【问题讨论】:
标签: java mysql hibernate criteria