意外标记:第1行第57列附近的值

时间:2012-06-20 17:18:07

标签: playframework syntax-error sql-in

JPA.em("default").createQuery("insert into USER (FULLNAME, EMAIL, USERNAME, PASSWORD) " + " VALUES (\'"+fullname+"\',\'"+email+"\',\'"+username+"\',\'"+password+"\');");

这是一个错误的查询?我收到这个错误:

[IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: VALUES near line 1, column 57 [insert into USER (FULLNAME, EMAIL, USERNAME, PASSWORD) VALUES ('Doniyor','ikbola-86@bk.ru','jurabayev','er');]]

我不知道为什么会发生这种情况,查询字符串实际上还可以,对吧?

非常感谢任何帮助!

谢谢

3 个答案:

答案 0 :(得分:6)

我认为你应该使用

.createNativeQuery(...);

而不是

.createQuery(...);

但我不确定。

如果您正在使用注释

@Query(value = "your_query_here", , nativeQuery = true)

答案 1 :(得分:1)

看起来好像你正在尝试使用SQL语句代替JPAQL,我不相信它有任何插入,尽管我自己还是Play Framework的新手所以我可能是错了。

我相信您应该做的是创建您想要插入的用户,然后保留该对象,因为您使用的是JPA。

所以你的代码看起来就像这样:

User u = new User('Doniyor','ikbola-86@bk.ru','jurabayev','er');
JPA.em("default").persist(u);

答案 2 :(得分:0)

这也会做.......

String hql = String.format("insert into attendence(slip_change_cntr,roll_no)values(0,"+a+")");
    Query query = sessionHb.createSQLQuery(hql);
    return query.executeUpdate();