Tag: hql

在HQL中无关联地join

比方说,我有两个表(A,B),如: A {id, a, c} B {id, b, c} 我也有他们的实体。 我想编写一个HQL,使得结果集会像(其中Ac = Bc): (a1, b1, c1) (a2, b2, c2) (a3, b3, c3) … 由于子句不支持hibernate我卡住,我不知道如何编写查询。

Hibernate中左连接和左连接FETCH的区别?

我想了解hibernate中的LEFT JOIN和LEFT JOIN FETCH之间的区别。 任何人都可以解释吗? 谢谢

在执行select和count查询的时候,有没有比Hibernate更高效的分页方式?

通常分页查询看起来像这样。 有没有更好的方法,而不是使两个几乎相等的方法,其中之一执行“select* …”,另一个“计数* …”? public List<Cat> findCats(String name, int offset, int limit) { Query q = session.createQuery("from Cat where name=:name"); q.setString("name", name); if (offset > 0) { q.setFirstResult(offset); } if (limit > 0) { q.setMaxResults(limit); } return q.list(); } public Long countCats(String name) { Query q = session.createQuery("select count(*) from Cat where name=:name"); q.setString("name", name); […]

Hive集群vs vs按sorting

据我所理解; 在减速机中只能sorting 命令全球范围内的东西,但一切推进一个减速机 通过关键哈希智能地将东西分配到reducer中,并进行sorting 所以我的问题是确保一个全球秩序的集群吗​​? 通过将相同的密钥分配到相同的减速器中,但是相邻的密钥呢? 我可以在这里find唯一的文件,从这个例子看来,它似乎在全球订购。 但从定义来看,我觉得这并不总是这样。

HQL留下了非关联实体的连接

我有两个实体, A和B 他们是相关的,但我不想将关系映射添加到豆。 我们如何使用HQL或条件使用A和B之间A左外连接 ? 有一些解决方法可用于此, 按照此处所述使用Native SQL。 添加一个关系并使用从A中select一个左连接ab 。 我们可以在HQL中做一个内部连接 select * from A a,B b where a.some = b.some 我总是回去这两个选项,有没有其他的select呢? 或者这在不可能?

这个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) 为什么? […]

ORDER BY使用Criteria API

当我写一个HQL查询 Query q = session.createQuery("SELECT cat from Cat as cat ORDER BY cat.mother.kind.value"); return q.list(); 一切安好。 但是,当我写一个标准 Criteria c = session.createCriteria(Cat.class); c.addOrder(Order.asc("mother.kind.value")); return c.list(); 我得到一个exceptionorg.hibernate.QueryException: could not resolve property: kind.value of: my.sample.data.entities.Cat 如果我想使用标准和秩序,我应该如何expression我的“秩序”?

Hibernate的HQL查询:如何将一个集合设置为查询的命名参数?

鉴于以下HQL查询: FROM Foo WHERE Id = :id AND Bar IN (:barList) 我使用Query对象的setInteger()方法设置:id 。 我想设置:barList使用对象List ,但看着Hibernate的文档和方法列表我看不到明显的select使用。 有任何想法吗?

HQL或Java持久性查询语言中的IN子句

我有以下参数化的JPA或Hibernate查询: SELECT entity FROM Entity entity WHERE name IN (?) 我想要传递参数作为ArrayList <String>,这可能吗? hibernate电stream告诉我,那 java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String 这可能吗? 解答 :作为参数的集合只能使用像“ :name ”这样的命名参数,而不能使用像“ ? ”这样的JDBC风格参数。

在(…)查询中编写HQL的正确方法

假设我想写下面的HQL查询: FROM Cat c WHERE c.id IN (1,2,3) 什么是写这个参数化查询的正确方法,例如 FROM Cat c WHERE c.id IN (?)