我有一个具有 CLOB 属性的实体:
public class EntityS {
...
@Lob
private String description;
}
为了从数据库中检索某些实体,我们使用 CriteriaQuery,我们需要结果是唯一的,所以我们这样做:
query.where(builder.and(predicates.toArray(new Predicate[predicates.size()]))).distinct(true).orderBy(builder.asc(root.<Long> get(EntityS_.id)));
如果我们这样做,我们会收到以下错误:
ORA-00932: inconsistent datatypes: expected - got CLOB
我知道那是因为在选择 CLOB 时不能使用 distinct。但是我们需要 CLOB。是否有使用 CriteriaQuery 和谓词等的解决方法?
我们正在使用一个丑陋的解决方法来摆脱 .unique(true) 然后过滤结果,但那是废话。我们使用它只是为了能够继续开发应用程序,但我们需要一个更好的解决方案,我似乎没有找到一个......