我有一个spring应用程序,在从后端创建数据库并启动应用程序后,它会运行迁移并创建相应的实体。这是样本实体
@Entity
@Table(name = "book")
public class Book {
private Long id;
private String name;
private String code;
private String price;
private String authors;
private String isbn;
private String publisher;
private Date publishedOn;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
如果我从实体类中删除此字段,例如我可以说我不再需要它了
private String publisher;
private Date publishedOn;
EDITTED
在我的hibernate配置xml文件中,我添加了这个以查看数据库是否会相应更新,但它没有
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
在重新启动应用程序时,如何才能自动更新后端的数据库实体,就像第一次启动时自动创建表和字段一样。
答案 0 :(得分:0)
Maby使用这样的东西:(未经测试)
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create-drop</property>
所以你的意思是:
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">create-drop</prop>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>