Hibernate 关联对象的标准

发布于 2024-12-05 14:53:51 字数 1347 浏览 1 评论 0原文

有一个“Item”类,它有一些名为“Vehicle”、“Vmodel”、“Category”、“ItemName”、“Brand”、“SizeModel”的关联类。每个类都有属性 id 和名称(例如“Vehicle”类、“vid”和“vname”)。项目类别有项目代码。

另外,我需要从给定的示例 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();
        }

引用的代码 this (15.6部分和该部分的最后一个示例代码)。

当执行上面的代码时,会发生错误 (org.hibernate.QueryException:无法解析属性:vmodel:Entity.Vehicle)。请任何人告诉我问题出在哪里以及我应该检查哪里。我的所有映射和其他配置类都是使用 Netbeans IDE 创建的。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦途 2024-12-12 14:53:51

尝试像这样拆分您的条件创建代码:

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

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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文