1

我想使用我拥有的三个 pojo,并使用 Hibernate 的能力在我的数据库中生成与它们匹配的表。这些类是电影、评分者和评分。这里是电影。评分者实际上是一回事,因为它也有一个与之相关的评分列表。

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 值的正确关键字?看起来我想使用“create”值,但阅读更多内容说它会导致 Hibernate 清空预先存在的表。我没看错吗?谢谢。

4

1 回答 1

0

关于 hbm2ddl 的关键字,“update”:更新架构,“create”:创建架构,销毁以前的数据。所以,我猜“更新”是您要查找的关键字。?

来到应该用于设置嵌入ID的注释,它是“@EmbeddedID”。当主键本身需要是嵌入对象时使用它。您是什么意思“使用此嵌入式 ID 设置需要什么特殊注释?”

于 2012-07-06T14:58:22.273 回答