用jpql更方便。就像5楼说的,,select u from User u;这个User就是你在hibernate配置文件里面配置的Entity.
不过最好还是名一个别名,这样更加规范一些。select u from User u; 如果你要查询只有几个列的话select u.c1,u.c2,u.c3 from User u;但是此方法一定要在你的实体类里面定义这几个列对应的构造函数!
专业个逑,可以的, public Integer B(final int Id) { List<Long> list = (List<Long>)getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { String hql = "SELECT COUNT(a) FROM A a WHERE a.id=:n";
如果你要查询只有几个列的话select u.c1,u.c2,u.c3 from User u;但是此方法一定要在你的实体类里面定义这几个列对应的构造函数!
public Integer B(final int Id) {
List<Long> list = (List<Long>)getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
String hql = "SELECT COUNT(a) FROM A a WHERE a.id=:n";
Query query = session.createQuery(hql).setInteger("n", Id);
return query.list();
}
});
if (list != null && list.size() > 0 && list.get(0) != null) {
return list.get(0).intValue();
}
return 0;
}
可以使用 SELECT User 这样的
你这里是 select count ,当然可以了。你换成select * from A a WHERE a.id=:n 试试。
select{type*} from 表名 where type.列名=‘’
不就是相当于
SQL: select * from A
想不到引发这么多的评论啊明显不可以的啊
HQL查询的select字句用于选择指定的属性或直接选择某个实体,
你一个*代表什么呢?说明不了啊!个人愚见 欢迎指正
select u from User uSQL
select * from User