有没有办法在未映射表上使用java bean功能?Hibernate查询未映射表
所以,我有一个只用于读取的表,它将永远不会被修改。我需要查询它只显示数据。但我不希望在查询未映射对象时,hibernate默认使用的Object []返回类型。我想将结果检索到自定义类型集合中。但我将不得不创建hbm文件来执行此操作。无论如何只要创建自定义类型并且没有hbm文件?
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方法:
加载结果Businessobj方法
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;
}
尝试了注释。由于某些原因,注释未被识别。我的classpath有hibernate-jpa-2.0-api-1.0.0.Final.jar,hibernate3.jar(3.5),hibernate-validator-4.0.2.GA.jar。 – sotn 2013-03-19 20:23:22
我能弄清楚为什么注释不起作用。有一些设置问题。 – sotn 2013-03-21 05:51:57
@sotn酷,很高兴你明白了:) – kostja 2013-03-21 08:27:35