2012-05-08 119 views
-1

我在我的模型中一對多和多對一映射:JPA一對多和多對一

類用戶

@OneToMany (cascade = { CascadeType.REFRESH, CascadeType.DETACH }, fetch = FetchType.EAGER) 
    private Set<Judgement> judgements; 

級別判定

@ManyToOne(cascade = { CascadeType.REFRESH, CascadeType.DETACH}) 
    @JoinColumn(name = "user_id") 
    private User judge; 

和DB,我要表作爲用戶和判斷,當我試圖運行我的代碼,它顯示錯誤爲:

Caused by: org.postgresql.util.PSQLException: ERROR: relation "users_judgements" does not exist 

是否意味着我必須手工創建表users_judgements,jpa不能自動爲我創建關係? RoR可以做到這一點......謝謝。

+0

您正在使用,以配合其JPA ORM框架,我的意思是你使用Hibernate。 – raddykrish

回答

0

如果你有一個來自USER表的user_id的外鍵,那麼在JUDGMENT表中就沒有必要擁有另一個表。這將是@JoinColumn(name =「user_id」)。

看看你是否錯過了一些東西;我看不到任何「mappedBy」屬性,在您的情況下它將是「用戶」。

請看看這篇文章;第4頁,鏈接將帶你,給出一對多關係的細節。這將是值得閱讀整篇文章。

http://www.javaworld.com/javaworld/jw-01-2008/jw-01-jpa2.html?page=4

此外,相同的教程的第1部分是良好的基礎;

http://www.javaworld.com/javaworld/jw-01-2008/jw-01-jpa1.html

+1

@ user468587如果您可以在此處發佈已解決的映射,它將對許多人有所幫助。 – mhan