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

don*_*yor 1 syntax-error sql-in playframework

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

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

[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');]]
Run Code Online (Sandbox Code Playgroud)

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

非常感谢任何帮助!

谢谢

duf*_*356 6

我认为你应该使用

.createNativeQuery(...);
Run Code Online (Sandbox Code Playgroud)

代替

.createQuery(...);
Run Code Online (Sandbox Code Playgroud)

但我不确定.

  • 方法 .createNativeQuery(...) 创建数据库查询,但不会执行它。要执行查询,您必须在查询对象上调用 .executeUpdate() 方法。现在是 .createNativeQuery(...).executeUpdate(); 也许这篇文章可以帮助您:http://stackoverflow.com/questions/5157051/hibernate-native-query-insert-wont-work-for-java-util-date-someone-please-help (2认同)