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

问题描述 投票:1回答:3
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','[email protected]','jurabayev','er');]]

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

非常感谢任何帮助!

谢谢

playframework syntax-error sql-in
3个回答
6
投票

我认为你应该使用

.createNativeQuery(...);

代替

.createQuery(...);

但我不确定。

如果您正在使用注释

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


1
投票

看起来好像你正在尝试使用SQL语句代替JPAQL,我不相信它有一个Insert Into,尽管我自己仍然是Play Framework的新手,所以我可能会弄错。

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

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

User u = new User('Doniyor','[email protected]','jurabayev','er');
JPA.em("default").persist(u);

0
投票

这也会做.......

String hql = String.format("insert into attendence(slip_change_cntr,roll_no)values(0,"+a+")");
    Query query = sessionHb.createSQLQuery(hql);
    return query.executeUpdate();
© www.soinside.com 2019 - 2024. All rights reserved.