【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
版本 :3.3.2.GA
我用过很多次的一个 BaseDao 实现的方法:
@Override
public T getBySQL(String sqlString, Object... values) {
Query query = this.getSession().createSQLQuery(sqlString).setCacheable(true);
if (values != null) {
for (int i = 0; i < values.length; i++) {
query.setParameter(i, values[i]);
}
}
return (T) query.uniqueResult();
}
下面的service 层中的代码中报错:
@Override
public boolean signing(SigningPlayer signingPlayer) {
SigningPlayer DBsp = signingPlayerDao.getBySQL("select * from signingplayer where game_id=? and user_id=?",
signingPlayer.getGameId(), signingPlayer.getUserId());
if (DBsp != null) {
return false;
} else {
signingPlayerDao.save(signingPlayer);
return true;
}
}
报错位置:
这个baseDao的实现方法我已经用过很多次了,不知道这里为什么类型强转失败。搞了半天没找到原因。请问怎么解决
hibernate的sql查询并不能自动封装城对象,sql语句查询返回的是结果集,活着自己重写方法,利用java的反射自己封装城对象; 或者用hql半面向对象查询和Criteria(全面向对象)查询
debug,是一个object,里面像是一个数组,直接用Object[ ] 接收会报错,
只能是object,debug object内容如下 :
那么这个怎么从object o 中取得数据呢?
你这个是SQL语句,又不是HQL语句,怎么可能会自动封装啊,SQL语句查询返回的是结果集啊
本地sql可以映射实体类吗?只能返回List<Object[]>吧?
hql应该是没问题的