我试图使用Datanucleus API来配置两个表之间的M:N关系"它们彼此不了解"如下:
书籍:作者
@PersistenceCapable
public class Book{
@Persistent(primaryKey = "true")
@Column(name = "isbn", allowsNull = "false")
private int userId;
private String isbnCode;
private Str5ing title;
@Persistent(table="BOOK_AUTHOR")
@Join(column="isbn")
@Element(column="authorId")
Collection<Author> bookAuthors = new HashSet<Author>();
}
@PersistenceCapable
public class Author{
@Persistent(primaryKey = "true")
@Column(name = "author_id", allowsNull = "false")
private int authorId;
private String firstName;
private Str5ing lastName;
@Persistent(table="BOOK_AUTHOR")
@Join(column="authorId")
@Element(column="isbn")
Collection<Book> bookAuthors = new HashSet<Book>();
}
现在,根据JDO's mapping的这个链接,我希望将第三个表创建为连接表,并使用新的Id列。
我有两个问题:
我如何克服问题2?对于一两个版本,我可以使用问题1,但这也需要解决。
JDO的Zens可以帮忙吗?
答案 0 :(得分:1)
要解决的问题。
valueForKey
以关联2个关系字段;你需要添加它,所以它是双向的。如果这应该是2个独立的1-N关系,那么我就不知道如何共享连接表,因为从一侧插入的数据与来自另一方的数据不一致不确定&#34;是什么意思?上面的链接中提到的标识列没有被创建。&#34; ;你的意思是&#34; ADPT_PK_IDX&#34;在链接?不要认为这适用于所有情况。
对于M-N关系,我会提到this link而不是你的1-N