有没有办法在未映射的表上使用 java bean 功能?
所以,我有一个只用于读取的表,它永远不会被修改。我只需要查询它来显示数据。但是我不希望在查询未映射的对象时休眠默认的 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;
}
}
道法:
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;
}