当前位置: 首页 > 面试题库 >

JPA:如何在静态JPA MetaModel中使用NUMBER列执行LIKE?

方增
2023-03-14
问题内容

我确实有一个带有NUMBER(实际上是BigDecimal,不要问为什么)列的静态元模型。现在,我想对该数字列执行LIKE查询:

CriteriaBuilder cb;
cb.like(entity.get(Entity_.numbercol), "123%");

在那里entity.get(Entity_.numbercol)返回Path<BigDecimal>。自然,我得到一个编译错误:...like(Expression<String>, ...) ... not applicable for the arguments (Path<BigDecimal>, ...)

.as(String.class)由于JPA中的某些错误,使用强制转换该列失败,但是我现在没有错误号。但是,最新版本的JPA /
Hibernate中未解决此问题。无论如何,它会导致有关某些无效SQL语句生成的运行时异常。

现在,我只需要一种获取与SQL等效的条件API的方法

... WHERE numbercol LIKE '123%';

搜索该主题已经产生了以下响应,这些响应没有帮助,因为我有一个静态元模型: NHibernate-使用CriteriaAPI对整数列进行LIKE搜索的最简单方法?和JPA/标准API-相似和均等问题
有任何想法吗?

在此先感谢多米尼克


问题答案:

不,它不会因错误而失败,它可以按指定方式工作(例如,在Javadoc中):

对表达式执行类型转换,返回新的表达式对象。此方法不会导致类型转换:运行时类型不会更改。警告:可能会导致运行时失败。

您使用的方法执行转换,并且需要转换。通常,在JPA中不支持从BigDecimal转换为String。



 类似资料:
  • 问题内容: 是否有用于PHP源文件的静态分析工具?二进制本身可以检查语法错误,但是我正在寻找功能更多的东西,例如: 未使用的变量分配 未先初始化就分配给的数组 以及可能的代码样式警告 … 问题答案: 从命令行以lint-mode运行php来验证语法而不执行: 更高级别的静态分析器包括: php-sat - Requires http://strategoxt.org/ PHP_Depend PHP

  • 抱歉,我在谷歌搜索中找不到答案...在kotlin中运行bash命令的语法是什么?我想做一个curl命令。那里的留档似乎非常有限,或者我不擅长谷歌搜索?

  • 我希望在从另一个类调用的方法“SetTotalSum”中使用findViewById。我如何使用它,尽管它是一个静态方法?

  • 我想使用我的webrtc. a静态库在swft。你能帮忙吗拜托?我听说你不能在Swift中使用静态库,是真的吗?

  • 问题内容: 有什么方法可以将动态生成的SQL提交给Teradata?我编写了一个查询,该查询将创建用于对表进行非规范化的代码。现在,我将代码放到客户端(SAS)中,然后在第二步中重新提交。我对Teradata宏或过程不熟悉;这样的事情行得通吗? 为了说明这一点,我有一个定义如下的表: 该表每天()填充一次,用于监视另一个表中对email_date的更改。以下查询返回我可以运行以创建我的非规范化视图

  • 问题内容: 这是SQL中的JOIN问题更新语句的扩展,但是我试图使用Spring Data JPQL。 我正在尝试将更新与JPQL中的JOIN一起使用,如下所示 但是,我得到如下错误 org.hibernate.hql.internal.ast.QuerySyntaxException:期望“设置”,找到“ JOIN” JPQL中无法进行UPDATE和JOIN吗?有什么选择。谢谢 问题答案: 该J