Ich versuche, eine Website zu schreiben, für den Datenbankzugriff mit Hibernate. Speichern kann ich gut funktionieren, aber wenn ich versuche, meine getList-Methode beim Ausführen des Aufrufs session.createQuery aufzurufen, fällt der Code einfach in die finally-Methode, ohne eine Ausnahme auszulösen, was mich ein wenig verwirrt lässt!Java, Hibernate getList funktioniert nicht
-Code ist unten:
public List<Category> getCategories() {
//insertCategory();
System.out.println("in get categories");
List<Category> result = null;
Session session = HibernateUtil.getSessionfactory().openSession();
Transaction transaction = null;
try {
transaction = session.beginTransaction();
Query cats = session.createQuery("from category where is_parent = 1");
result = cats.list();
transaction.commit();
for (java.util.Iterator<Category> it = result.iterator();it.hasNext();){
Category myCategory = it.next();
System.out.println(myCategory);
}
calculateBlueprintSize(result.size());
} catch (HibernateException e) {
// TODO: handle exception
transaction.rollback();
e.printStackTrace();
} catch (Exception ee) {
ee.printStackTrace();
} finally {
session.close();
}
return result;
}
Mein Einsatz funktioniert gut (vorerst fest einprogrammiert habe ich nur an die DB verbinden kann zu beweisen)
public void insertCategory() {
Category newCat = new Category();
newCat.setActive(new Integer(1));
newCat.setCategoryDescription("my test category");
newCat.setCategoryName("my cat name");
newCat.setLastUpdatedDate(new Timestamp(new Date().getTime()));
newCat.setParent(new Integer(1));
newCat.setSequence(new Integer(1));
Session session = HibernateUtil.getSessionfactory().getCurrentSession();
try {
session.beginTransaction();
// user.setUserId(new Long(2));
session.save(newCat);
session.getTransaction().commit();
} finally {
session.close();
}
}
Thi auf den Zugriff auf eine MySQL-Datenbank basiert.
Jede Hilfe würde geschätzt werden, ich konnte nichts finden, das mir helfen kann, und ich bin neu zu Hibernate, so zu beginnen zu denken, zurück zu DAO-Muster mit nativen sql mit ehcache zu wechseln, könnte die beste Sache zu tun sein ....
Dank
Matt
Danke, aber selbst wenn ich nur: Abfrage Katzen = session.createQuery („in der Kategorie“); Entfernen der Where-Klausel, die es immer noch fehlschlägt :( – Mattatattat
Wenn Sie Ihre Classpath Probleme kümmern, wird dieses Problem weggehen. –