怎样在hibernate里面使用原生SQL

unbelievable2010 2012-02-13 11:05:40
select (select min(sporttime) from Psport)+level-1 from dual connect by level<=trunc(sysdate)-(select min(sporttime) from Psport)+1 minus select sporttime from Psport where pid ="+pid+"";

sportime--------DATE
pid------------VARCHAR2

这是我的SQL语句 在MyEclipse中报

line 1:71: unexpected token: by


求各位大神 给解答一下 或者 给变成HQL 能在hibernate里面运行的~!
...全文
209 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
session 是org.hibernate.XX提供的

[Quote=引用 9 楼 unbelievable2010 的回复:]

引用 3 楼 qq737604771 的回复:

不可以直接使用sql吗? SQLQuery query=session.createSQLQuery(sql).addEntity(Psport.clasee);
就可以 取的时候和hql一样。



session 是哪个包里的
[/Quote]


songsong210 2012-02-14
  • 打赏
  • 举报
回复
你的数据库版本是否支持嵌套查询
software攻城师 2012-02-14
  • 打赏
  • 举报
回复
HQL不行?
「已注销」 2012-02-13
  • 打赏
  • 举报
回复


public boolean insetInfo(final UserBean userBean,final int[] depIds) throws Exception {
// TODO Auto-generated method stub
List list= (List)getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException{
for (int i = 0 ; i < depIds.length ; i++)
{
String sql ="insert into tbl_user_dep (userId,depId) values(?,?)";
Query query= session.createSQLQuery(sql);
query.setParameter( 0, userBean.getUserId());
query.setParameter( 1, depIds[i]);
query.executeUpdate();
session.flush();
session.clear();
}
Object o = null;
return o;
}
});
return true;
}
混迹江湖 2012-02-13
  • 打赏
  • 举报
回复
你先看你的sql在你数据库中能执行不,如果能的话在Hibernate中基本也行。不过要用SQLQuery 这个接口。
c2u 2012-02-13
  • 打赏
  • 举报
回复
你们的项目大吗?
个人感觉hibernate不够灵活,改成MyBatis会好些,所有SQL必须手写,这样性能更高。
unbelievable2010 2012-02-13
  • 打赏
  • 举报
回复
底层已经搭建好不能动了~~!
qq737604771 2012-02-13
  • 打赏
  • 举报
回复
不可以直接使用sql吗? SQLQuery query=session.createSQLQuery(sql).addEntity(Psport.clasee);
就可以 取的时候和hql一样。
nicesmil3 2012-02-13
  • 打赏
  • 举报
回复
呃,我看错题意了。把我忽略
nicesmil3 2012-02-13
  • 打赏
  • 举报
回复


sql="";
session.createSQLQuery(sql).list();

小威 2012-02-13
  • 打赏
  • 举报
回复
hibernate文档,使用native SQL
unbelievable2010 2012-02-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qq737604771 的回复:]

不可以直接使用sql吗? SQLQuery query=session.createSQLQuery(sql).addEntity(Psport.clasee);
就可以 取的时候和hql一样。
[/Quote]


session 是哪个包里的

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧