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

Posted

技术标签:

【中文标题】意外标记:第 1 行第 57 列附近的 VALUES【英文标题】:unexpected token: VALUES near line 1, column 57 【发布时间】:2012-06-22 21:33:26 【问题描述】:
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');]]

我不知道为什么会这样,查询字符串实际上是可以的,对吧?

将不胜感激任何帮助!

谢谢

【问题讨论】:

【参考方案1】:

我认为你应该使用

.createNativeQuery(...);

而不是

.createQuery(...);

但我不确定。

如果您使用注释

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

【讨论】:

谢谢你,完成了这项工作,但它没有将任何数据保存到表中:( 您是否调用了查询对象的 .executeUpdate() 方法?? 方法 .createNativeQuery(...) 为数据库创建查询,但它不执行它。要执行查询,您必须在查询对象上调用方法 .executeUpdate()。现在是 .createNativeQuery(...).executeUpdate();也许这篇文章可以帮助你:***.com/questions/5157051/… 不管你是谁,你救了我!!!太棒了! :D。那行得通。我没有使用 1) executeUpdate() 和 2) setParameter 非常重要。谢谢谢谢谢谢 在 Hibernate 中也有帮助哈哈哈【参考方案2】:

看起来您正在尝试使用 SQL 语句而不是 JPAQL 进行查询,我不相信它有 Insert Into,尽管我自己还是 Play Framework 的新手,所以我可能是搞错了。

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

所以你的代码看起来应该是这样的:

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

【讨论】:

谢谢,不是说,[IllegalArgumentException:未知实体:models.User]。但用户在那里。 您需要使用@Entity 将用户用JPA 作为一个实体进行注释。在 Play 中可以找到一个很好的例子!网站:playframework.org/documentation/2.0.1/JavaEbean 我相信通过谷歌搜索,您将能够找到如何为您的用户类做注释。 是的,但是如果我放置这个实体,就会给我这个错误:PersistenceException: [PersistenceUnit: defaultPersistenceUnit] Unable to configure EntityManagerFactory 这真是要了我的命【参考方案3】:

这也行.......

String hql = String.format("insert into attendence(slip_change_cntr,roll_no)values(0,"+a+")");
    Query query = sessionHb.createSQLQuery(hql);
    return query.executeUpdate();

【讨论】:

以上是关于意外标记:第 1 行第 57 列附近的 VALUES的主要内容,如果未能解决你的问题,请参考以下文章

ReactJS 和 Node.JS [JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符]

原因:意外标记“fi”附近的 Bash 语法错误

设置授权:JSON 数据的第 1 行第 1 列出现意外字符

角/弹簧靴|错误:SyntaxError:“JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符”

额外数据:第 1 行第 2 列 [重复]

SyntaxError:JSON.parse:尝试插入 mysql 时 JSON 数据的第 1 行第 1 列出现意外字符