list.add(build.equal(bondRoot.get(Bond_.writingCompanyCode),dtlRoot.get(ArPstdDtl_.companycd ).as(String.class)));
但我收到以下错误:
原因:org.apache.openjpa.persistence.ArgumentException:找不到类型“class java.lang.String”的元数据。类没有增强。
有人可以帮我解决这个问题吗?
list.add(build.equal(bondRoot.get(Bond_.writingCompanyCode),dtlRoot.get(ArPstdDtl_.companycd ).as(String.class)));
但我收到以下错误:
原因:org.apache.openjpa.persistence.ArgumentException:找不到类型“class java.lang.String”的元数据。类没有增强。
有人可以帮我解决这个问题吗?
将类型从BigDecimal更改为String需要转换,而不是强制转换。方法as不能从类型转换为其他类型 - 它纯粹用于类型转换,如文档所述:
对表达式执行类型转换,返回一个新的表达式对象。此方法不会导致类型转换:运行时类型不会更改。警告:可能会导致运行时失败。
Criteria API 不提供从BigDecimal到String的转换。可以通过CriteriaBuilder.function使用数据库供应商特定的功能。