0

サブコレクション内のアイテムなしでコレクション アイテムを取得する Groovy の方法は何ですか。例えば:

コレクション: [1,2,3,4,5,6]

サブコレクション: [1,5,6]

結果は次のようになります: [2,3,4]

編集:何か間違ったことをしているようです。これは私のコードの一部です:

    def report = Report.get(params.report.id)
    def user = User.get(params.user.id)
    List<User> availableUsers = []
    availableUsers = User.findAllByCompany(company))

    List<User> addedUsers = []
    addedUsers = (List<User>) session["addedUsers"] ?: []
    addedUsers << user
    session["addedUsers"] = null
    session["addedUsers"] = addedUsers

    availableUsers = availableUsers - addedUsers        

このコードは、 addedUsers リストの最後のユーザーのみを削除しています。

availableUsers: [ジョン、ジャック、ジム]

addedUsers: [ジョン、ジャック]

availableUsers - addedUsers: [ジョン、ジム]

addedUsers の最後の項目だけが削除されるたびに。明らかな何かが欠けていると思いますが、見つけられません。

4

1 に答える 1

4

明らかなことを試しましたか:

result = [ 1, 2, 3, 4, 5, 6 ] - [ 1, 5, 6 ]

それが効くから…

編集

ドメインオブジェクトをセッションに保存すると、休止状態のトランザクション間でオブジェクトが異なるため、ID をセッションに保存し、毎回ユーザーを新しく取得する (または永続化が必要な場合は、この機能をドメインに書き込む) ことをお勧めします。

addedUsers = session["addedUsers"].collect { User.get( it.id ) } ?: []
于 2013-04-25T13:40:54.283 に答える