hibernate createSQLQuery 问题
发布网友
发布时间:2022-04-10 08:48
我来回答
共3个回答
热心网友
时间:2022-04-10 10:17
是取值遇到问题了么?这个是我以前写的代码,给你参考一下,你的问题就能解决。
public List<ShareMiddle> delVote(final ShareMiddle sharemiddle) {
return (List<ShareMiddle>) this.getHibernateTemplate().execute(
new HibernateCallback() {
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
// TODO Auto-generated method stub
String sql = "SELECT weiboid,ip, (COUNT(ip)-3) AS mvote FROM tb_weibo_vote WHERE ip='"
+ sharemiddle.getC_ip()
+ "' AND weiboid='"
+ sharemiddle.getW_ids() + "' GROUP BY ip";
SQLQuery query = session.createSQLQuery(sql);
List list = query.list();
return gList(list);
}
});
}
public List<ShareMiddle> gList(List list) {
Iterator it = list.iterator();
List<ShareMiddle> slist = new ArrayList<ShareMiddle>();
ShareMiddle share = null;
while (it.hasNext()) {
Object[] result = (Object[]) it.next();
if (result[0] != null) {
share = new ShareMiddle();
share.setW_ids(Integer.valueOf(result[0] != null ? result[0]
.toString() : ""));
share.setC_ip(String.valueOf(result[1] != null ? result[1]
.toString() : ""));
share.setCount(Integer.valueOf(result[2] != null ? result[2]
.toString() : ""));
}
slist.add(share);
}
return slist;
}
我明白你的意思了,你查询出来的数据记录应该是多条的,而你接受的时候只接收了一条记录,而且是最后一条记录。SQLQuery query = session.createSQLQuery(sql); 查询过后用
List list = query.list();来接收,然后循环取值就行了。
热心网友
时间:2022-04-10 11:35
where o.id=s.organizationid and o.id=1
我想明白这是干嘛……为什么要加o.id=1?难道说你只想获得这个id=1 的信息?
两张表中字段名相同,只要SQL语句中“表 as 新的名字”,新的名字不同就没事
热心网友
时间:2022-04-10 13:10
你可以在数据库端直接写语句测试一下呀,其实这个跟hibernate关系不大,这样可以更快的帮助你解决问题。
hibernate 中 createSQLQuery() 用法,我想让它返回一个book对象,怎么写...
return book;使用SQLQuery对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。
Load Port、SMIF
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
hibernate,我用createSQLQuery返回list对象,遍历打印到控制台后输出...
你的对象没有覆写toString()方法,所以调用的是Object默认的toString(),而默认的toString打印的格式就是“类型@地址”。解决方法是覆写你List中存放的对象的toString方法。
Hibernate使用中防止SQL注入的几种方案
在获取便利操作的同时,SQL的注入问题也值得我们的密切注意,下面就来谈谈几点如何避免SQL注入: 1.对参数名称进行绑定:12Query query=session.createQuery(hql);query.setString(“name”,name); 2.对参数位置进行邦定:1234Query query=session.createQuery(hql);query.setString(0,name1)...
hibernate createSQLQuery(sql).executeUpdate 不执行
其他代码没问题,SQL语句看下是否能获取到值,调试一下 看看SQL有没有报错,你的Id是自增还是怎么
hibernate sql 语句查询 sum() ,count,max,min 怎么用
回答:这样试试:Query query = super.getSession().createSQLQuery(" select count(*) from Rrplenish order by id ");Object obj = query.uniqueResult();System.out.println(Integer.parseInt(obj.toString()));
hibernate中的query怎么取到每个字段的值
教你个方法:List result = session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list()用这个方法可以把数据库查询出来的每一行封装成一个Map类型,Key为数据库字段,Value为值,然后把这些Map放到了一个List里面,如果你只返回一条记录:那么 Map<String, Object> map...
hibernate调用存储过程返回结果集的问题
CallableStatement cs=session.connection().prepareCall("{call proc_query(?)}")即可,如果用的spring集成的话可能需要内部类实现 cs.registerOutParameter(1, OracleTypes.CURSOR);cs.execute();ResultSet rs = (ResultSet) cs.getObject(1);剩下的就跟jdbc调用存储过程一样了,因为一般存储过程返回的...
hibernate中list方法停止执行
createSQLQuery是不支持query.iterate()的方法的 下面我给你一个计算分页总行数的例子你可以参考一下,希望对你有所帮助。int count = 0;Session session = this.getSession();//count = ((Long) session.createSQLQuery(sql).uniqueResult()).intValue();if(session.createSQLQuery(finder.get...
hibernate sql语句参数为null时,如何处理
"; query.setParameter(0, pId); query.setParameter(1, sId); 现在遇到一个问题,就是如果参数传一个null的时候,hibernate不会将sql转换成is null,程序将会出现错误,所以修改成如下://两个参数均不是主键 public void deleteTable(Long sId, Long pId) { String sql = "delete table where 1...
hibernate原生sql查询单列返回的是什么
其实是没有具体的返回的,执行的结果是org.hibernate.impl.SQLQueryImpl,根据你对返回结果的逻辑来决定你返回的类型,比如java.util.List,调用它的list()方法,调用iterater方法则返回java.util.Iterator.返回String则调用SQLQueryImpl的父类AbstractQueryImpl的getQueryString()......