2

多対多のこの例を考えると:

    @DatabaseTable
    public class Band {

        @DatabaseField(foreign = true, foreignAutoRefresh = true)
        private Music music;

        @ForeignCollectionField
        private ForeignCollection<Music> musics;
    }

    @DatabaseTable
    public class Music {

        @DatabaseField(foreign = true, foreignAutoRefresh = true)
        private Band band;

        @ForeignCollectionField
        private ForeignCollection<Band> bands;
    }

既に存在し、関連付けられたバンドを既に持っている音楽を更新して、新しいバンドを音楽内部の ForeignCollection に追加する場合、その音楽をnew Band 内部の ForeignCollection は後で。

でもねえ、それは、以前に関連付けられていた他のバンドが、ForeignCollection で特定の音楽を見ることができなくなることを意味しますよね?

どうすればそれを解決できますか?... 複数のバンドが所有し、各バンドの ForeignCollection に表示される Music を持つにはどうすればよいでしょうか。

(混乱を招く長い質問で申し訳ありません。必要に応じて、より明確にすることができます)

編集:

ちなみに、私は -> https://github.com/j256/ormlite-jdbc/blob/master/src/test/java/com/j256/ormlite/examples/manytomany/ManyToManyMain.javaの例を見てきました

しかし、それは別の状況に当てはまるようです。

4

1 に答える 1

0

既に存在し、関連付けられたバンドを既に持っている音楽を更新して、新しいバンドを音楽内部の ForeignCollection に追加する場合、その音楽をnew Band 内部の ForeignCollection は後で。

興味深い質問です。ここで何をするのが正しいのかわかりません。ある種のオブジェクト マネージャがあれば、 aBandに a を追加できMusic(逆も同様)、適切なエンティティを更新して同期を保つことができます。

ただし、最善の解決策ではありません。

于 2013-12-18T21:03:42.327 に答える