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