意外标记:第 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 列出现意外字符]
角/弹簧靴|错误:SyntaxError:“JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符”
SyntaxError:JSON.parse:尝试插入 mysql 时 JSON 数据的第 1 行第 1 列出现意外字符