给出了许多示例:
@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
(反之亦然),它将更新适当的实体以使其保持同步。
但是,这不是最佳解决方案。