Hibernate 我应该为嵌入式ID使用什么注释?

Hibernate 我应该为嵌入式ID使用什么注释?,hibernate,hbm2ddl,Hibernate,Hbm2ddl,我想使用我拥有的三个POJO,并使用Hibernate的功能在我的数据库中生成与它们匹配的表。课程包括电影、评分员和评分。这是一部电影。Rater实际上是同一个东西,因为它还有一个与之相关的评级列表 public class Movie{ @Id @GeneratedValue(generator = "IdGenerator", strategy = Generation Type.TABLE) @TableGenerator(name = "IdGenerat

我想使用我拥有的三个POJO,并使用Hibernate的功能在我的数据库中生成与它们匹配的表。课程包括电影、评分员和评分。这是一部电影。Rater实际上是同一个东西,因为它还有一个与之相关的评级列表

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;
}
所以我问:使用这个嵌入式id设置需要什么特殊的注释?另外,哪个是hbm2ddl值的正确关键字?看起来我想使用“create”值,但读到更多关于它的内容时,会导致Hibernate清空预先存在的表。我读对了吗?
谢谢。

关于hbm2ddl的关键字,“更新”:更新模式,“创建”:创建模式,销毁以前的数据。所以,我想“更新”是你要找的关键词


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

这几乎就是答案。我不确定我是否必须为内部ID做任何特殊的注释。你试过实现它吗?那个注释应该可以很好地工作。我只有带注释的POJO。我没有看到任何变化。我猜我必须在Hibernate改变任何东西之前尝试添加数据?
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;
    }