有一个“ Item”类,它有一些相关的类,称为Vehicle,Vmodel,Category,ItemName,Brand,SizeModel。每个类都有属性ID和名称(例如Vehicle类,“ vid”和“ vname”)。 Item类具有itemcode。
另外,我还需要从给定的示例Item对象(称为“ sItem”)中获取Item对象,该对象等于我的示例item对象的属性以及与该对象关联的对象的属性。这是我的代码
sItem
Session session = getSession(); List list = null; try { list = session.createCriteria(Item.class).add(Example.create(sItem)) .createCriteria("vehicle").add(Example.create(sItem.getVehicle())). createCriteria("vmodel").add(Example.create(sItem.getVmodel())). createCriteria("category").add(Example.create(sItem.getCategory())). createCriteria("itemName").add(Example.create(sItem.getItemName())). createCriteria("brands").add(Example.create(sItem.getBrands())). createCriteria("sizeModel").add(Example.create(sItem.getSizeModel())). list(); } catch (HibernateException e) { e.printStackTrace(); }
我引用了此内容(15.6节和该节中的最后一个示例代码)。
当执行上述代码时,发生错误(org.hibernate.QueryException:无法解析属性:Entity.Vehicle的vmodel)。请任何人让我知道问题出在哪里,应该在哪里检查。我的所有映射和其他配置类都是使用Netbeans IDE创建的。
尝试像这样拆分您的条件创建代码:
Criteria baseCrit = session.createCriteria(Item.class).add(Example.create(sItem)); baseCrit.createCriteria("vehicle").add(Example.create(sItem.getVehicle())); baseCrit.createCriteria("vmodel").add(Example.create(sItem.getVmodel())); baseCrit.createCriteria("category").add(Example.create(sItem.getCategory())); baseCrit.createCriteria("itemName").add(Example.create(sItem.getItemName())); baseCrit.createCriteria("brands").add(Example.create(sItem.getBrands())); baseCrit.createCriteria("sizeModel").add(Example.create(sItem.getSizeModel())); list = baseCrit.list();