大家好,我用SSH作往数据库里添加记录的功能。有一个字段不是自动增长,但却和ID自动增长字段取值相等。所以要求是先获取表中最大的ID值,然后insert的时候加1。
public int getEntityMaxId(Class<T> entityClass, ID id){
  String entityname = entityClass.getName();
  org.hibernate.Session session = new Configuration().configure().buildSessionFactory().openSession();
  Query query = session.createSQLQuery("SELECT MAX(" + id + ") FROM " + entityname);
  System.out.println(Integer.parseInt(query.list().iterator().next().toString()));
  return 1;
}
错误现象是,不打印任何内容。我把max函数换成count函数也不行。问题似乎在createSQLQuery上,但是不知道如何处理?
另外,也这样作过,但是还是没有任何内容打印出来Query query=session.CreateQuery("select max(" + id ") from " + entityname);
Iterator it=query.list.iterator();while(it.hasNext())
{
Object[] obj=(Object[])it.next();
System.out.println(obj[0]);
}
很着急,分却不多,春节前想弄完,谢谢了,谢谢了!