关联对象上的Hibernate标准 [英] Hibernate criteria upon associated objects

查看:95
本文介绍了关联对象上的Hibernate标准的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有一个类Item,它有一些关联的类,分别叫Vehicle,Vmodel,Category,ItemName,Brand,SizeModel。每个类都有合适的id和一个名字(例如Vehicle类,vid和vname ).Item类有itemcode。

另外我需要从一个给定的示例Item对象(称为 sItem )的Item对象,它等于我的示例项目对象的属性和我的对象的关联对象属性。
这里是我的代码

  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:无法解析属性:vmodel:Entity.Vehicle)。请任何人告诉我问题在哪里,我应该在哪里查看。我的所有映射和其他配置类都是使用Netbeans IDE创建的。尝试拆分您的条件创建代码: p>

 标准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();


There is a class"Item" and it has some associated classes called Vehicle,Vmodel,Category,ItemName,Brand,SizeModel.Those each class has properites id and a name(for example Vehicle class, "vid" and "vname").Item class has itemcode.

Also I need to get Item objects from a given sample Item object(called "sItem") which equal to my sample item object's properties and my object's associated objects properties. Here is my code

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();
        }

I refered this (15.6 section and last sample code in that section).

when this above code is executed, an error occures (org.hibernate.QueryException: could not resolve property: vmodel of: Entity.Vehicle). Please any one let me know where is the problem and where should I checked. My all mappings and other configuring classes are created with Netbeans IDE.

解决方案

Try to split your criteria creation code like this:

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();

这篇关于关联对象上的Hibernate标准的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆