我要执行一条native sql 的查询,但发现执行不了,老是说对象名user无效
user表我没有进行映射,只是个表名,我希望执行后返回结果为List<Object>,然后再分析每行数据这只是个简单的查询例子,因为我真正要做的是多表查询,不想用hibernate 的对象映射,太麻烦感觉. public void test(){
final String sql="select top 10 userid,password from user";
this.getHibernateTemplate().execute(
new HibernateCallback(){
public Object doInHibernate(Session session)throws HibernateException{
List<Object> ls=(List<Object>)session.createSQLQuery(sql).list();
if(ls.size()>0){
for(int i=0;i<ls.size();i++){
Object[] row=(Object[])ls.get(i);
System.out.println("row[0]="+row[0].toString());
System.out.println("row[1]="+row[1].toString());
}
}
return ls;
}
}
);
}
user表我没有进行映射,只是个表名,我希望执行后返回结果为List<Object>,然后再分析每行数据这只是个简单的查询例子,因为我真正要做的是多表查询,不想用hibernate 的对象映射,太麻烦感觉. public void test(){
final String sql="select top 10 userid,password from user";
this.getHibernateTemplate().execute(
new HibernateCallback(){
public Object doInHibernate(Session session)throws HibernateException{
List<Object> ls=(List<Object>)session.createSQLQuery(sql).list();
if(ls.size()>0){
for(int i=0;i<ls.size();i++){
Object[] row=(Object[])ls.get(i);
System.out.println("row[0]="+row[0].toString());
System.out.println("row[1]="+row[1].toString());
}
}
return ls;
}
}
);
}
-------------------------------->
String sql="select top 10 userid,password from [user]";
加上 '[' 和 ']'
List ls=session.createSQLQuery(sql).list();
final String sql="select top 10 userid,password from user";
this.getHibernateTemplate().execute(
new HibernateCallback(){
public Object doInHibernate(Session session)throws HibernateException{
List<Object> ls=(List<Object>)session.createSQLQuery(sql).list();
//session.createSQLQuery(sql).setResultSetMapping();
if(ls.size()>0){
for(int i=0;i<ls.size();i++){
Object[] row=(Object[])ls.get(i);
System.out.println("row[0]="+row[0].toString());
System.out.println("row[1]="+row[1].toString());
}
}
return ls;
}
}
);
}
try{
String sql="select top 10 userid,password from user";
this.getSession().createSQLQuery(sql).list();
}
catch(Exception ex){
System.out.println(ex.getMessage());
}
}这样也无法执行native sql query,老是说user不是对象,难道必须做表到对象的映射吗,
实际情况中,sql是传入的参数,我不知道他要访问那些表,所以无法做影射