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');]]
我不知道为什么会发生这种情况,查询字符串实际上还可以,对吧?
非常感谢任何帮助!
谢谢
答案 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();