Groovy Nexus3查询生成器如何按降序检索人工制品

Groovy Nexus3查询生成器如何按降序检索人工制品,groovy,nexus,nexus3,Groovy,Nexus,Nexus3,有没有办法按日期降序检索文物 我目前以下面的脚本为例: import org.sonatype.nexus.repository.storage.Asset import org.sonatype.nexus.repository.storage.Query import org.sonatype.nexus.repository.storage.StorageFacet import groovy.json.JsonOutput import groovy.json.JsonSlurper

有没有办法按日期降序检索文物

我目前以下面的脚本为例:

import org.sonatype.nexus.repository.storage.Asset
import org.sonatype.nexus.repository.storage.Query
import org.sonatype.nexus.repository.storage.StorageFacet

import groovy.json.JsonOutput
import groovy.json.JsonSlurper

def request = new JsonSlurper().parseText(args)
assert request.groupId: 'groupId parameter is required'
assert request.repoName: 'repoName parameter is required'
assert request.startDate: 'startDate parameter is required, format: yyyy-mm-dd'

log.info("Gathering Asset list for repository: ${request.repoName} as of startDate: ${request.startDate}")

def repo = repository.repositoryManager.get(request.repoName)
StorageFacet storageFacet = repo.facet(StorageFacet)
def tx = storageFacet.txSupplier().get()

tx.begin()

Iterable<Asset> assets = tx.
    findAssets(Query.builder()
      .where('group = ').param(request.groupId)
      .and('last_updated > ').param(request.startDate)
      .build(), [repo])
def urls = assets.collect { "/repository/${repo.name}/${it.name()}" }

tx.commit()

def result = JsonOutput.toJson([
    assets  : urls,
    since   : request.startDate,
    repoName: request.repoName
])
return result

有什么方法可以改变上面的脚本以按日期降序检索内容吗?

您只需添加一个后缀即可

Query.builder()
          .where('group = ').param(request.groupId)
          .and('last_updated > ').param(request.startDate)
          .suffix('order by last_updated desc')
          .build()
def urls = assets.collect { "/repository/${repo.name}/${it.name()}" }
Nexus在幕后使用OrientDB。您可以在此处找到查询示例:

Query.builder()
          .where('group = ').param(request.groupId)
          .and('last_updated > ').param(request.startDate)
          .suffix('order by last_updated desc')
          .build()
def urls = assets.collect { "/repository/${repo.name}/${it.name()}" }