マップされていないテーブルでJavaBean機能を使用する方法はありますか?
したがって、読み取り専用のテーブルがあり、変更されることはありません。データを表示するためだけにクエリする必要があります。ただし、マップされていないオブジェクトをクエリするときに休止状態がデフォルトになるObject[]リターンタイプは必要ありません。結果をカスタムタイプのコレクションに取得したいと思います。ただし、これを行うには、hbmファイルを作成する必要があります。カスタムタイプを作成し、hbmファイルを作成しない方法はありますか?
結果をロードするBusinessobjメソッド:
loadResults()
{
String qry = "select col1, col2 from table";
List<CustomType> result = (ArrayList<CustomType>) dao.HQLWithTransformer(qry, new CustomTransformer());
}
カスタムトランス:
public class CustomTransformer implements ResultTransformer {
@Override
public Object transformTuple(Object[] rowdata, String[] arg1)
{
return new CustomType(String.valueOf(rowdata[0]),String.valueOf(rowdata[1]));
return null;
}
@Override
public List transformList(List arg0) {
return null;
}
}
DAOメソッド:
public Collection HQLWithTransformer(String qry, ResultTransformer rt){
List<?> al=null;
try
{
Query q = sess.createQuery(qry);
q.setResultTransformer(rt);
al = (ArrayList<?>)q.list();
}
catch(HibernateException he)
{
log.debug("Hibernate Exception", he);
}
finally
{
sess.close();
}
return al;
}