Tag: hql

在Hibernate中使用HQL在一个表中插入数据

我正在阅读Hibernate HQL教程,发现HQL不支持INSERT INTO..VALUES..但INSERT INTO..SELECT..即HQL仅支持从另一个表插入。 假设我想在一个表中插入相同的值,并且该数据不是来自任何其他表,即这些值不在任何其他表中。那么我怎样才能在HQL中执行此操作? 另外,想知道HQL中这种限制背后的理性吗?

HQL递归,我该怎么做?

我有一个树结构,其中每个Node都有一个父Node和一个Set children 。 每个Node都有一个String title ,我想进行一个查询,我选择Set titles ,作为该节点和所有父节点的标题。 我该如何编写此查询? 对单个标题的查询是这样的,但就像我说的那样,我希望它扩展到父母的整个分支。 SELECT node.title FROM Node node WHERE node.id = :id 干杯 聂

没有节点的数据类型:org.hibernate.hql.internal.ast.tree.IdentNode HQL

我有HQL,我试图获得没有分类的工件(当活动为0时) artifacts = Artifact.findAll(“FROM Artifact WHERE id NOT IN ( SELECT artifact_id FROM Classification WHERE active = 1) AND document_id = :docid”,[docid:document.id], [max:limit, offset:startIndex]); 每当我跑,我得到错误 java.lang.IllegalStateException: No data type for node: org.hibernate.hql.internal.ast.tree.IdentNode \-[IDENT] IdentNode: ‘artifact_id’ {originalText=artifact_id} 分类定义: class Classification { public static final String USER_DEFAULT = “USER” public static final String USER_SYSTEM = “SYSTEM” TaxonomyNode […]

HQL – 分页的行标识符

有没有人知道HQL是否有关键字来识别ROWID或ROWNUM等行? 我想用HQL实现分页,但我无法使用.setMaxResult()或.setFirstResult(),因为我不直接使用会话对象,因此不使用Query对象,只是创建我的查询为一个字符串并使用.find()方法。 我在我的查询中尝试使用LIMIT和OFFSET,但是HQL似乎忽略了这些关键字并且无论如何都将整个结果返回给我。 我也无法使用Hibernate标准,因为它不支持我的查询中出现的“HAVING”子句。 我的最后一种方法是使用ROWNUM / ROWID关键字限制结果集。 还有其他人有其他建议吗?

如何使用Hibernate调用自定义数据库函数?

如果我要在数据库中定义一些函数(可能是Postgres,或任何其他数据库): create or replace function isValidCookie(ckie); 我会从SQL中将其称为: select * from cookietable c where isValidCookie(c.cookie); 如何从Hibernate调用这样的自定义函数?

Hibernate命名查询顺序依据参数

嗨,任何人都可以指出我们如何将order by子句作为命名参数传递给hql 例如: 作品: select tb from TransportBooking as tb and TIMESTAMP(tb.bookingDate, tb.bookingTime) >= current_timestamp() order by tb.bookingDate 不起作用: select tb from TransportBooking as tb and TIMESTAMP(tb.bookingDate, tb.bookingTime) >= current_timestamp() order by :order

如何在Hibernate的HQL中转义保留字

我使用以下查询来获取带有索引id , text和object的java.util.Map : Query q = mySession.createQuery( “SELECT u.id AS id, u.name AS text, u AS object FROM User u”) .setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); ……但是object似乎是一个保守的词。 例如obj就可以了。 在MySQL使用反引号转义的方式中,当前在HQL中转义别名的方法是什么? 使用反引号会出现以下错误: Exception in thread “main” org.hibernate.QueryException: unexpected char: ‘`’ [SELECT u.id AS id, u.name AS text, u AS `object` FROM User u]