给出了许多示例:

    @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添加新乐队,则我将不得不覆盖该音乐上的“乐队”对象引用,以便能够在音乐中看到该音乐。新的Band内部的ForeignCollection之后。

但是,嘿,这意味着以前关联的另一个乐队现在将无法在ForeignCollection中看到给定的音乐,对吗?

我该如何解决呢?...我如何拥有几支乐队所有并出现在ForeignCollection每个乐队中的音乐,反之亦然。

(很抱歉让您困惑不已,我可以尝试根据需要提供更好的说明)

编辑:

顺便说一句,我看了-> https://github.com/j256/ormlite-jdbc/blob/master/src/test/java/com/j256/ormlite/examples/manytomany/ManyToManyMain.java中的示例

但这似乎适用于不同的情况。

最佳答案

如果我更新了已经存在并且已经具有关联乐队的音乐,以向音乐内部ForeignCollection添加新乐队,则我将不得不覆盖该音乐上的“乐队”对象引用,以便能够在音乐中看到该音乐。新的Band内部的ForeignCollection之后。


有趣的问题。不知道这里正确的做法是什么。也许有某种对象管理器,所以您可以将Band添加到Music(反之亦然),它将更新适当的实体以使其保持同步。

但是,这不是最佳解决方案。

10-06 13:39