我会用一个例子来解释这个问题。
我有一个Vehicle对象,它有一个型号名称和一个品牌。制作时,应列出相关车辆。当制造商和型号都给出时,则应列出合适的车辆。休眠示例查询
例如: 有一个名为'Vehicle'的实体。它有一个名为makeModel的代理,其实体名称为MakeModel
。 MakeModel有代理这是“化妆”和“模式”,其实体名称是型号和Make.Both Entititiyes“模式”和“制作”有字符串变量“name'.Here是类
class Vehicle{
private Integer vehicleId;
private MakeModel makeMOdel;
//getters and setters
}
class MakeModel {
private Make make;
private Model model;
//getters and setters
}
class Make{
private Integer mid;
private String make;
}
class Model{
private Integer mdlid;
private String modelName;
}
下面是我试图获得车辆清单。这里,session
是Hibernate Session。
Criteria cr= session.createCriteria(Vehicle.class);
MakeModel mkmd=new MakeModel();
if(/* if only the make is give */){
Make mk=new Make();
mk.setMake("Toyota");
mkmd.setMake(mk);
}
else if(if both make and and model given){
Make mk=new Make();
mk.setMake("Toyota");
mkmd.setMake(mk);
Model md=new Model("Venus");
mkmd.setModel(md);
}
cr.createCriteria("makeModel").add(Example.create(mkmd));List l=cr.list();
但是,这将返回所有车辆。 我想获得所有使用hibernate标准而不是HQL的车辆。
同样的问题可以找到here并且还提到this也。任何人都会告诉我哪里出了问题,以及如何根据给定的标准检索车辆列表。
问题是?你引用的答案提供了一个很好的起点。你尝试了什么? “我无法解决问题”真的意味着什么? – home
为此获取适当的休眠条件并不困难,但如果您可以为Vehicle和MakeModel实体提供代码,则会更容易。 –
@家。感谢您的关注,并用所有代码编辑了问题。 –