@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;
答案 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