Hibernate hql插入失败!

zyfdanny 2008-03-27 05:37:40
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
String hqlInsert = "INSERT INTO " + table + colItemString
+ " VALUES " + whereString;
int deletedEntities = session.createQuery(hqlInsert)
.executeUpdate();
tx.commit();



// hqlInsert = INSERT INTO admin(Id,userName,userPwd,nowdate) VALUES (11,'111','111','2008-02-12')
在mysql 里面运行正常,可以在程序中报错。
错误如下:
unexpected token: VALUES near line 1, column 48 [INSERT INTO admin(Id,userName,userPwd,nowdate) VALUES ('11','111','111','2008-02-12')]

其他的select,delete,update语句没有问题。帮忙看看什么原因?
...全文
668 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
baobeituping 2008-03-31
  • 打赏
  • 举报
回复
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
String hqlInsert = "INSERT INTO " + table + colItemString
+ " VALUES " + whereString;
int deletedEntities = session.createQuery(hqlInsert)
.executeUpdate();
tx.commit();

改成:
String sqlInsert = "INSERT INTO " + table + colItemString
+ " VALUES " + whereString;
int deletedEntities = session.createSQLQuery(hqlInsert)
jnbldw 2008-03-30
  • 打赏
  • 举报
回复
大哥,你写的是hql语句,用的却是sql语法,不出问题才怪呢
yriio 2008-03-29
  • 打赏
  • 举报
回复
直接
S.saveOrUpdate(obj);
不就好了....用Hibernate了还要用那么复杂的sql语句插入...

Hibernate存放,读取的都是对象.操作的时候不要有什么数据库表的概念, Hibernate表的概念只有在写*.hbm.xml文件的时候才有
e3002 2008-03-29
  • 打赏
  • 举报
回复
hibernate中是对象操作
shaxixi 2008-03-29
  • 打赏
  • 举报
回复
1,hibernate的速度还是在于缓存和内部优化,你好好看看缓存的内容,实践一下就会发现HQL的好处了
因为HQL其实都是用在查询和批量删除和更新基础上的,

2,sql灵活,hql不灵活,这个观点是错误的,主要还是在于你用hql太少了,其实都是一样灵活的,至少我这么认为

3,hibernate也允许调用sql,但是不支持这样,会破环缓存,至于为什么,继续看书学期吧

:)
Leo1734 2008-03-29
  • 打赏
  • 举报
回复
Hibernate中用sql来保存这么简单的东东!!!!
lz要理解Hibernate!
coder000 2008-03-28
  • 打赏
  • 举报
回复
hibernate 插入就用save()方法啊~~~

要是想用insert插入数据的话那就要用Session session.createSQLQuery("insert.......");方法
longshenls 2008-03-28
  • 打赏
  • 举报
回复
都这样了还用hsql干嘛 浪费速度么 用sql语句好了
用hsql的话 他其实也是先转化成sql再执行的
一般insert update detele是不会用hsql的
likgui 2008-03-28
  • 打赏
  • 举报
回复
先看看书,理解什么是对象持久化
小南瓜瓜 2008-03-28
  • 打赏
  • 举报
回复
错误信息里生成的SQL ID字段11有个引号 以String类型插入?
jingchangsheng 2008-03-27
  • 打赏
  • 举报
回复
还没太理解hibernate啊,操作的是对象,用的是HQL语句,和SQL语句是有区别的
ee4456 2008-03-27
  • 打赏
  • 举报
回复
用hibernate一般从不写insert,update ,delete语句,都是用session.save(object),session.update(object),
session.merge(object),session.delete(object);这样的形式UPDATE和merge都是更新,不过两个不太一样
gongyali2005 2008-03-27
  • 打赏
  • 举报
回复
直接SESSION.SAVE(OJB);
Cradamon 2008-03-27
  • 打赏
  • 举报
回复
hibernate 操作的实际是对象,而你这个完全是sql和hql还是有点区别的
你需要具体操作一个PO然后
PO.set();
PO.save();
karlpan01 2008-03-27
  • 打赏
  • 举报
回复
只支持INSERT INTO ... SELECT ...形式,不支持INSERT INTO ... VALUES ...形式.
具体我也没有写过!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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