字符串的聚合函数

时间:2016-04-20 11:16:03

标签: java jpa eclipselink

我编写了以下查询并在pgAdmin中执行:

 protected Selection<?>[] buildSelection() {
    Selection<?>[] arr = {
        queryRoot.get(Contractor_.id),
        queryRoot.get(Contractor_.shortName),
        cb.max(
         cb.selectCase().when(cb.equal(joinA.get("name"),"Nr"),joinCta.get(AttributeToContractor_.attributeValue))
        ),
        queryRoot.get(Contractor_.vat),};

    return arr;
}

我得到了我想要的东西。现在我尝试“翻译”ro JPA no-SQL(CriteriaBuilder) 我在SELECT中遇到“MAX”问题,因为当我尝试这个时:

required: javax.persistence.criteria.Expression<N>
found: javax.persistence.criteria.Expression<java.lang.Object>
reason: inferred type does not conform to upper bound(s)
  inferred: java.lang.Object
  upper bound(s): java.lang.Number

我有这个例外:

class ReminderWorker
include Sidekiq::Worker

def perform(args)
 reminder = Reminder.find(args['id'])
 reminder.activate = true
 PrivatePub.publish_to("reminder", message: reminder)
 reminder.save
 end
end

当然,我理解我不能使用Object,因为它预示着Integer。 对此有什么解决方案吗?除了“MAX”之外的其他功能,它给出了与sql查询相同的结果? 我问,因为我将使用两个带有大小写的列而不是查询给我重复的记录,只有一个区别,在“Nr”列中,一次将是值,下面将是空的,并且在secand列中将是相同的问题但是相反。 / p>

有什么想法吗?

0 个答案:

没有答案