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

Playframework 意外标记:第57列第1行附近的值,playframework,syntax-error,sql-in,Playframework,Syntax Error,Sql In,这是一个错误的问题吗?我得到这个错误: JPA.em("default").createQuery("insert into USER (FULLNAME, EMAIL, USERNAME, PASSWORD) " + " VALUES (\'"+fullname+"\',\'"+email+"\',\'"+username+"\',\'"+password+"\');"); 我不知道为什么会发生这种情况,查询字符串实际上是正常的,对吗 非常感谢您的帮助 谢谢我想你应该用 [IllegalAr

这是一个错误的问题吗?我得到这个错误:

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');]]
而不是

.createNativeQuery(...);
但我不确定

如果您正在使用注释


@Query(value=“your\u Query\u here”,nativeQuery=true)

看起来您试图使用SQL语句来进行查询,而不是JPAQL,我认为JPAQL无论如何都没有插入,尽管我自己对Play框架还是很陌生,所以我可能弄错了

我相信您应该做的是创建希望插入的用户,然后持久化该对象,因为您正在使用JPA

因此,您的代码可以大致如下所示:

.createQuery(...);

这也可以

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

谢谢,这完成了任务,但没有将任何数据保存到表中:(您是否调用了查询对象的.executeUpdate()方法?.createNativeQuery(…)方法为数据库创建了查询,但它没有执行。要执行查询,您必须调用方法.executeUpdate()在你的查询对象上。现在应该是.createNativeQuery(…).executeUpdate();也许这篇文章可以帮助你:不管你是谁,你救了我!!!Thaaaaanks!太多了!D。这很有效。我没有使用1)executeUpdate()和2)setParameter非常重要。谢谢也在Hibernate中谢谢,不是说,[IllegalArgumentException:未知实体:models.User]。但用户是存在的。您需要使用@entity将用户作为实体用JPA注释。这方面的一个很好的例子可以在剧中找到!网站:我相信通过谷歌搜索,你将能够找到如何为你的用户类做注释。是的,但如果我放置此实体,is会给我以下错误:PersistenceException:[PersistenceUnit:defaultPersistenceUnit]无法配置EntityManagerFactory这简直让我受不了
String hql = String.format("insert into attendence(slip_change_cntr,roll_no)values(0,"+a+")");
    Query query = sessionHb.createSQLQuery(hql);
    return query.executeUpdate();