iteye_11263 2008-11-28 20:33
浏览 316
已采纳

关于hql里面自动增长主键的问题

刚刚接触hibernate,在用hql插入数据的时候,总是报错,错误的第一句话是
Exception in thread "main" org.hibernate.hql.ast.QuerySyntaxError: unexpected token: INSERT near line 1, column 1 [INSERT INTO person(name,age,sex) VALUES(?,?,?)]

发生错误的位置
[code="java"]q.executeUpdate();[/code]

数据表的结构
[code="java"]
CREATE TABLE person
(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20),
age INT,
sex VARCHAR(2)
);
[/code]

执行的部分代码
[code="java"]
Person p = new Person();
p.setName("haha");
p.setAge(20);
p.setSex("男");

    String hql = "INSERT INTO person(name,age,sex) VALUES(?,?,?)";
    Query q = session.createQuery(hql);
    q.setString(0, p.getName());
    q.setInteger(1, p.getAge());
    q.setString(2, p.getSex());
    q.executeUpdate();//错误就发生在这一行

[/code]

如果直接用hql那句话插入(在mysql命令行下)是没有问题的,但是这样执行的时候却总是报上面异常,好像是因为主键的问题吧

望高手解决,先谢谢了

对了,补上person的xml文件

[code="java"]















[/code]
[b]问题补充:[/b]
我貌似听说过hibernate里不能用hql插入数据啊,各位所说的方法我都试过了,还是没有成功,很郁闷

如果可能的话,希望有位高手耽误5分钟的时间来写一个这样的东西,传上来就更好了,我已经试了n次了,快崩溃了
[b]问题补充:[/b]
[quote]
楼主你插入数据为什么非要 hql
直接save方法不行吗???
chenpingtai2008 (初级程序员) 2008-12-01
[/quote]

呵呵 说的是,只不过我想实验一下这种写法而已,呵呵

  • 写回答

11条回答 默认 最新

  • chenpingtai2008 2008-12-01 15:58
    关注

    楼主你插入数据为什么非要 hql
    直接save方法不行吗???

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 CSS实现渐隐虚线框
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容