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');]]
我不知道为什么会发生这种情况,查询字符串实际上还可以,对吧?
非常感谢任何帮助!
谢谢
我认为你应该使用
.createNativeQuery(...);
代替
.createQuery(...);
但我不确定。
如果您正在使用注释
@Query(value = "your_query_here", , nativeQuery = true)
看起来好像你正在尝试使用SQL语句代替JPAQL,我不相信它有一个Insert Into,尽管我自己仍然是Play Framework的新手,所以我可能会弄错。
我相信你应该做的是创建你想要插入的用户,然后保持该对象,因为你正在使用JPA。
所以你的代码看起来就像这样:
User u = new User('Doniyor','[email protected]','jurabayev','er');
JPA.em("default").persist(u);
这也会做.......
String hql = String.format("insert into attendence(slip_change_cntr,roll_no)values(0,"+a+")");
Query query = sessionHb.createSQLQuery(hql);
return query.executeUpdate();