Hibernate Frage

dg87

Erfahrenes Mitglied
Ich möchte gerne in ein bestehendes System einen Query bauen, der mir Datensätze nach Namen liefert.
Ich gucke also bei uns im System und es gibt zwei Arten Querys zu bauen:

Code:
public List<test> getTestByName(final Long test, final int test2) {
  	HibernateCallback callback = new HibernateCallback() {

      public Object doInHibernate(Session session) throws HibernateException, SQLException {
      	StringBuilder builder = 
        	new StringBuilder("select distinct p from TABELLE p join fetch ...., ....  where ...... = ? and .... = ....");
        
      	builder.append(" order by p.updateDate asc");
        
        Query queryObject = session.createQuery(builder.toString());
        
        queryObject.setLong(0, test);
        
        if (maxResults > 0) {
          queryObject.setMaxResults(test2);
        }
        return queryObject.list();
      }
    };    
    return (List<test>) getHibernateTemplate().execute(callback);          
  }

und einmal kurz und knackig:

Code:
  public List<test> getTestName() {
    return this.getHibernateTemplate().find("from TABELLE p join fetch test order by ...");
  }

Mir gehts nicht um den Inhalt (unkenntnlich gemacht) oder Syntax.
Nur weiß ich nicht welche von beiden Methoden ich nehmen soll für einen Query, der mir DS nach Namen liefert. Was ist der Unterschied, warum der eine so groß mit Callback etc und der andere nur Einzeiler?
 
Zurück