这个HQL有什么问题? “节点没有数据types”
session.createQuery("Select attribute from GoodsSection tgs " + "join gs.ascendants ags join ags.attributes attribute " + "where attribute.outerId = :outerId and tgs = :section ") .setString("outerId", pOuterId) .setEntity("section", section) .setMaxResults(1) .uniqueResult();
对我来说看起来不错,但结果是
java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.IdentNode \-[IDENT] IdentNode: 'attribute' {originalText=attribute} at org.hibernate.hql.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:145) at org.hibernate.hql.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:705) at org.hibernate.hql.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:529) at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:645) at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281) at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
为什么? 怎么了?
你还没有定义“gs”别名。 你只有“ags”和“tgs”。
当出现这个错误时,您应该知道单词或variables之间没有find空格或空格。
- hibernate:根据实体类自动创build/更新数据库表
- 从JPA注释的实体类自动生成数据模式
- Hibernate或JDBC
- 如何使用JPA2的@Cacheable而不是Hibernate的@Cache
- org.hibernate.MappingException:无法确定types:java.util.Set
- hibernate:LazyInitializationException:无法初始化代理
- Hibernate,@SequenceGenerator和allocationSize
- org.hibernate.LazyInitializationException – 无法初始化代理 – 没有会话
- 我们如何使用Hibernate对行进行计数?