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 中的音乐,反之亦然。

(很抱歉这个混淆的长问题,如果需要,我可以尝试提供更好的说明)

编辑:

顺便说一句,我查看了 -> 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 稍后。

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

然而,这不是最好的解决方案。

于 2013-12-18T21:03:42.327 回答