@JoinTable是否在数据库中创建持久表?

时间:2016-03-03 21:26:57

标签: hibernate jpa

@JoinTable是否真的在数据库中创建并保留了名为“students_courses”的表?或者它只在运行时临时存在并在应用程序关闭后消失?

@ManyToMany
@JoinTable(
  name="students_courses",
  joinColumns=@JoinColumn(name="student_id", referencedColumnName="id"),
  inverseJoinColumns=@JoinColumn(name="course_id", referencedColumnName="id"))
private List<Course> courses;

2 个答案:

答案 0 :(得分:1)

该表必须存在于数据库中,它不是临时的。如果您已将Hibernate配置为执行此操作,Hibernate将为您创建它,否则您需要在此代码生效之前以其他方式创建它。

答案 1 :(得分:0)

在您int RentalProfit; RentalDays + RentalRate = RentalProfit; 中,您必须设置属性 return RentalDays + RentalRate; 。 (更多信息请Hibernate hbm2ddl.auto possible values and what they do?

但要小心这个属性。如果您设置值persistence.xml,它将每次从您的实体重新创建数据库。

hbm2ddl.auto = create

此外,您可以看到这个问题Hibernate: Automatically creating/updating the db tables based on entity classes