当前位置: 首页 > 知识库问答 >
问题:

在JPQL中将整数转换为字符串

田焕
2023-03-14

我想有一个JPQL查询,它可能看起来像:

    entityManager.createQuery("Select a.* from A a WHERE CAST(a.num AS TEXT) LIKE '%345%' ", A.class);

其中a.num是一个整数。我想将此转换为字符串以使用类似的条件。然而,上述转换在JPQL中不起作用。我该如何实现这一点?

共有3个答案

鄂伟兆
2023-03-14

从hibernate文档“cast(…as…)”,其中,第二个参数是Hibernate类型的名称。根据Hibernate类型列表,它应该是字符串(区分大小写!)。

因此,请求应为:

entityManager.createQuery("select a.* from A a WHERE CAST(a.num AS string) LIKE '%345%' ", A.class);

从导致:org.hibernate.QueryException:无法解析CAST: INT答案的请求类型中获取并检查。

莫繁
2023-03-14

我也有同样的需求。这应该适用于JPA 2.0和Hibernate 5.0.2:

entityManager.createQuery(
    "Select a.* from A a WHERE CONCAT(a.num, '') LIKE '%345%' ", A.class);
姚浩歌
2023-03-14

你能更具体一点,你的问题是什么?您是否有某种错误,或者查询结果是错误的?

因为这段代码对我来说很好:

session.createQuery("from MyObject where CAST(id as text) like :id").setParameter("id", "%1").getResultList();

我正在使用Hibernate 5.2和Postgresql 9.5。此外,如果您在理解错误方面有困难,可以尝试编辑hibernate。cfg公司。xml或任何用于使Hibernate显示其发送的查询的配置文件,方法如下:

<property name="hibernate.show_sql">true</property>
 类似资料:
  • 问题内容: 系统:Windows Vista 32位,Java 6.0.2 我有一些关于将char转换为int的问题。我运行下面的代码,将myInt的值保留为4: 现在,这种转换是Java自动完成的吗?是从ascii“ 4”减去ascii值“ 0”,然后在幕后强制转换为int吗?这让我感到困惑,因为当我尝试进行反向操作时,实际上必须将结果转换为char: 如第一个示例所示,是因为Java自动将(a

  • 问题内容: 有没有一种方法可以将整数转换为PHP中的字符串? 问题答案: 您可以使用该函数将数字转换为字符串。 从维护的角度来看,它显然是您正在尝试做的事情,而不是其他一些更深奥的答案。当然,这取决于您的上下文。

  • 问题内容: 如何在JavaScript中将字符串转换为整数? 问题答案: 最简单的方法是使用本机函数: 如果这对您不起作用,则有 parseInt , 一元加号 , 带有floor的parseFloat 和 Math.round 方法。 parseInt: 一元加号,如果您的字符串已经是整数形式: 如果您的字符串是浮点数或可能是浮点数,并且您想要一个整数: 或者,如果您要多次使用Math.floo

  • 问题内容: 有什么方法可以将null转换为Integer。null实际上是一个字符串,我在我的服务层中传递该字符串,将其接受为整数。因此,每当我尝试将null字符串强制转换为Integer时,都会引发异常。但是我必须将null转换为Integer。 问题答案: 您 不能 从String强制转换为Integer。但是,如果您尝试将字符串转换为整数,并且必须提供处理字符串的实现,请查看以下代码片段:

  • 问题内容: 给定一个数字: 将其转换为字符串的“最佳”方法是: 问题答案: 有多种方法: (我的偏爱) (我不知道编译器如何处理它,也许它和上面一样有效)

  • 问题内容: 我有一个整数 在声明中,我必须将其与一些字符串进行比较。我不能在开始时设置为字符串,因为必须在循环中将其递减。 如何转换? 问题答案: 我找到了答案。 将整数转换为字符串: 将字串转换为整数: