1
我試圖在Java EE中複製Facebook的牆。OneToMany JoinTable與非主鍵值
我有3個表格: 用戶,帖子,牆。
用戶有一個用戶名(PK)和其他字段,郵政有一個ID(PK),作者(用戶FK)和其他一些。 Wall是Post和User之間的連接表。
問題是,只有在Wall中,post和user都是PK,項目纔會編譯。 有帖子有PK和用戶只是非空值不會工作!
但是將它們都作爲PK導致@ManyToMany,這意味着相同的帖子可以在許多牆上,這是不正確的!
我試過有剛剛發佈的PK在長城和使用這個映射:
帖子:
@JoinTable(name = "Wall", joinColumns = {
@JoinColumn(name = "id", referencedColumnName = "id")}, inverseJoinColumns = {
@JoinColumn(name = "user", referencedColumnName = "username")})
@OneToMany
private User user;
用戶:
@ManyToOne
private Collection<Post> onWall;
但它說:
t上關係屬性[user]的目標實體他的班[class entity.Post]無法確定。當不使用泛型時,確保目標實體在關係映射上定義..
我的映射有什麼問題?
我知道,但我認爲沃爾是不是正規的實體。我的意思是,Wall必須使用來自用戶的數據加入Post的數據,這就是爲什麼我認爲它是JoinTable的原因!沒有辦法做我在問題中提出的問題嗎?感謝您的答覆btw :) – StepTNT 2012-01-12 09:44:50
@StepTNT編輯。 – MaDa 2012-01-12 10:06:24
好點! :)另一個問題是......這不需要在Post表中有一個新字段來同時擁有作者和所有者? – StepTNT 2012-01-12 13:28:09