2012-07-05 28 views
1

我想獲取三個pojos,並使用Hibernate的能力在我的數據庫中生成匹配它們的表。這些課程是電影,評分和評級。這是電影。 Rater實際上是一樣的東西,因爲它也有連接到它的評級列表。我對嵌入式ID使用哪些註釋?

public class Movie{  
    @Id 
    @GeneratedValue(generator = "IdGenerator", strategy = Generation Type.TABLE) 
    @TableGenerator(name = "IdGenerator", 
    pkColumnValue = "movieId") 
    private long id; 
    private String name; 
    @OneToMany(mappedBy = "id.rater") 
    private List<Rating> ratings; 
} 

等級差別很大。我正在使用EmbeddedId。這是我到目前爲止。

public class Rating{ 
    @Embeddable 
    public static class RatingId 
     { 
      @ManyToOne 
      @JoinColumn(name = "movieId") 
      private Movie movie; 
      @ManyToOne 
      @JoinColumn(name = "raterId") 
      private Rater rater; 
     } 
    @EmbeddedId 
    private RatingId id; 
    private String comment; 
    private int rating; 
    } 

所以我問這個:使用這個嵌入式ID設置需要什麼特殊的註釋?另外,哪個是適用於hbm2ddl值的關鍵字?這似乎是我想使用「創建」值,但閱讀更多的說它會導致Hibernate清空預先存在的表。我讀過對嗎? 謝謝。

回答

0

關於hbm2ddl的關鍵字,「更新」:更新模式,「創建」:創建模式,銷燬以前的數據。所以,我猜「更新」是你正在尋找的關鍵字。

來到應該用來設置嵌入ID的註釋,它是「@EmbeddedID」。它在主鍵本身需要成爲嵌入式對象時使用。你是什​​麼意思「使用這個嵌入式ID設置需要什麼特殊的註釋?」

+0

這幾乎是答案。我不確定是否必須爲內部ID做任何特別的註釋。 – user1281598 2012-07-09 12:20:32

+0

你試過實施它嗎?該註釋應該完美地工作。 – 2012-07-09 23:55:13

+0

我所擁有的是帶註釋的pojos。我沒有看到任何變化。我猜我必須在Hibernate改變任何東西之前嘗試添加數據? – user1281598 2012-07-10 14:58:54

相關問題