读书人

! Hibernate 中使用createSQLQuery()的

发布时间: 2012-01-18 00:23:26 作者: rapoo

求助!! Hibernate 中使用createSQLQuery()的使用问题!!!!
在使用HIBERNATE的时候,程序 (数据库是 sqlserver2000)

String t_n= "tname ";
String ssql= "select id from sysobjects where name= ' "+t_n+ " ' ";
Query query;
query=session.createSQLQuery(ssql);
Object objs=(Object)l.iterator().next();
int id=((Integer)objs).intValue();


为什么总报异常:[Ljava.lang.Object; cannot be cast to java.lang.Integer
id 明明是int型啊 这个是怎么会事啊?
createSQLQuery()方法的结果怎么取呀?????


[解决办法]
给你个简单查询的例子吧,希望有用

public static void main(String[] args) {
HibernateUtil.setup( "create table EVENTS ( uid int, name VARCHAR, start_Date
date, duration int, location_id int); ");
HibernateUtil.setup( "create table locations ( uid int, name VARCHAR, address
VARCHAR); ");
// hibernate code start
Session session = HibernateUtil.currentSession();
Transaction tx = session.beginTransaction();
Location location = new Location();
location.setName( "USA ");
location.setAddress( "Address ");
session.save(location);

Event e= new Event();
e.setId(11111L);
e.setName( "testSave ");
e.setStartDate(new Date());
e.setLocation(location);
e.setName( "testSave ");

session.save(e);

List results =
session.createQuery( "from Event e where e.name= 'testSave ' ").list();

System.out.println(results.size());

tx.commit();
HibernateUtil.closeSession();

HibernateUtil.sessionFactory.close();

// hibernate code end

HibernateUtil.checkData( "select * from events; ");

}

[解决办法]
你试试这样

createSQLQuery( "SELECT * FROM CATS ")
.addScalar( "id ", Hibernate.INTEGER)

把id指定成integer
[解决办法]

[解决办法]
有必要这么麻烦??
String t_n= "tname ";
String hql= "select id from sysobjects where name= ' "+t_n+ " ' ";
List list = session.createQuery(hql).list();
Iterator iterator = list.iterator();
while(iterator.hasNext()){
System.out.print(iterator.next()+ " ");
}
不就OK了????

读书人网 >J2SE开发

热点推荐