2011-09-20 3 views
1

Il existe une classe "Item" et certaines classes associées sont appelées Vehicle, Vmodel, Category, ItemName, Brand, SizeModel.Chaque classe a un ID de properites et un nom (par exemple Vehicle class, " vid "et" vname "). La classe d'objet a un itemcode.Critères d'Hibernation sur les objets associés

De même, j'ai besoin d'obtenir des objets Item d'un objet Item donné (appelé "sItem") qui soit égal aux propriétés de mon objet élément d'échantillon et aux propriétés des objets associés de mon objet. Voici mon 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(); 
     } 

Je refered this (section 15.6 et dernier exemple de code dans cette section). Lorsque ce code ci-dessus est exécuté, une erreur survient (org.hibernate.QueryException: n'a pas pu résoudre la propriété: vmodel de: Entity.Vehicle). S'il vous plaît quelqu'un me laisser savoir où est le problème et où devrais-je vérifié. Mes mappages et autres classes de configuration sont créés avec l'IDE Netbeans.

+0

curieux: comment cette question liée au Swing? – kleopatra

Répondre

1

Essayez de diviser votre code de création de critères comme celui-ci:

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

Wow ... :) ça a fonctionné parfaitement. Merci beaucoup. –

Questions connexes