java - Hibernate HQL 错误 - 意外标记 :

标签 java hibernate annotations hql

***import org.hibernate.Query;***

String hql = "FROM :className WHERE userCreate like ':userName'";
Query query = session.createQuery(hql);
query.setParameter("className", className);
query.setParameter("userName", userName);
List<Node> result = query.list();

还有一个错误

org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: : near line 1, column 6 [FROM :className WHERE userCreate like ':userName']
at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:91)
at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:109)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:304)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:203)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:126)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:88)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:167)
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1800)
at com.SDC.DAO.DAOFileAndFolderService.findUserCreteFileOrFolder(DAOFileAndFolderService.java:36)
at com.SDC.View.Main.main(Main.java:57)

线程“main”中的异常 java.lang.NullPointerException 在 com.SDC.View.Main.main(Main.java:58)

最佳答案

您不能为 Hibernate 查询使用命名参数。您可以通过手动将表的名称附加到您的 hql 字符串中来解决这个问题。你的代码看起来像这样:

String hql = "FROM " + className + " WHERE userCreate like ':userName'";
Query query = session.createQuery(hql);
query.setParameter("userName", userName);
List<Node> result = query.list();

关于java - Hibernate HQL 错误 - 意外标记 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25926222/

相关文章:

java - 类型安全: Unchecked cast when extending generics

java - Spring上的-Drun.profiles和-Dspring.profiles.active有什么区别?

Java根据属性对对象进行排序

java - 在另一个类(class)中使用什么上下文共享偏好?

java - 使用泛型和 jpa EntityManager 方法

hibernate - 从sessionFactory切换到EntityManager后,InvalidDataAccessApiUsageException

java - Spring Boot + JPA + Hibernate CommandAcceptanceException : Error executing DDL

java - Hibernate 新手在 netbeans 中的帮助

java - Java注解的必要性

java - 比较 java.lang.Class 和 javax.lang.model.element.TypeElement 的对象