All pastes #626406 Raw Edit

fetch join

public java v1 · immutable
·published 2007-07-19 17:04 UTC
rendered paste body
public ReleaseFolderRecord getRecord(         String tableName,         int transitFolderID,        privateID, String[] fetch) {    Class listClass = getClassForTable(tableName);    if ( listClass == null ) {        return null;    }    String className = listClass.getSimpleName();    StringBuffer hql = new StringBuffer(             "select r " +            " from ReleaseFolderJoin" + className + " as j " +            "     join j.record as r "    );    int count = fetch == null ? 0 : fetch.length;    for ( int i = 0; i < count; i++ ) {        hql.append( " left join fetch r." ).append( fetch[i] );    }    hql.append( "where j.folder.id = :folderId and r.privateID = :privateId" );    return ( ReleaseFolderRecord ) em.createQuery( hql )            .setParameter( "folderId", transitFolderID )            .setParameter( "privateId", privateID )            .getSingleResult();}