0
list.add(build.equal(bondRoot.get(Bond_.writingCompanyCode),dtlRoot.get(ArPstdDtl_.companycd ).as(String.class)));

但我收到以下错误:

原因:org.apache.openjpa.persistence.ArgumentException:找不到类型“class java.lang.String”的元数据。类没有增强。

有人可以帮我解决这个问题吗?

4

1 回答 1

0

将类型从BigDecimal更改为String需要转换,而不是强制转换。方法as不能从类型转换为其他类型 - 它纯粹用于类型转换,如文档所述:

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

Criteria API 不提供从BigDecimalString的转换。可以通过CriteriaBuilder.function使用数据库供应商特定的功能。

于 2013-12-14T11:35:14.260 回答