現在、コードで何が起こっているのかよくわかりません。私が理解していることから、グルーヴィーなセットには重複が含まれていません。ただし、セット内に重複があり、データベースに重複が残っていることもわかります。データベースから取得した場合でも、重複はセットに含まれていません。
私には2つのクラスがあります(簡潔にするためにいくつかのプロパティが削除されています):
class EntityType {
static hasMany = [attributes: Attribute]
}
class Attribute {
String keyname
}
私のサービスでは、を使用してEntityTypeに追加される属性のjsonarrayを渡しますtype.addToAttributes(attr)
。同じ呼び出しを複数回実行すると、重複がセットに追加されます。そして、永続化するとき、重複は永続化されます。ただし、データベースからセットを取得すると、重複することなくセットが取得されます。したがって、最終的な結果は、データベーステーブルを不要なデータで埋める以外に何も害を及ぼさないように見えるということです。
セットについて何が欠けていますか?
編集:これは私がちょうど気づいた奇妙な何かです。すべての属性に対して重複が作成されるわけではありません。n-1個の複製のみが作成されます。属性jsonarryを反復処理する場合、最初の属性は複製されませんが、その後は複製されます。したがって、私の配列が{a:1、b:2、c:3}の場合、bとcの複製のみが作成されます。