java – Spring boot JPA:删除实体更改列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Spring boot JPA:删除实体更改列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2034字,纯文字阅读大概需要3分钟。
内容图文
我尝试使用spring-boot-starter-data-jpa从java类创建MySQL数据库中的表.除非我在java类中更改/删除列名,否则它工作得很好.这是一个例子:
我有一个班级电话“工作人员”,有2个字段:id,name
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private int id;
@Column(name = "name", length = 15)
private String name;
public Staff() {
}
// some setter and getter here
当我运行我的项目时,一个“Staff”表生成我想要的2列:id,name.问题是如果我将“name”拆分为“firstname”和“lastname”,如下所示:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private int id;
@Column(name = "firstname", length = 15)
private String firstname;
@Column(name = "lastname", length = 15)
private String lastname;
public Staff() {
}
//some getter and setter here
“Staff”表现在包含4列(id,name,firstname,lastname)而不是3.然后我需要自己删除“name”列.反正有没有自动摆脱它?
解决方法:
看起来你使用:
spring.jpa.properties.hibernate.ddl-auto=update
78.1 Initialize a database using JPA
spring.jpa.generate-ddl (boolean) switches the feature on and off and
is vendor independent. spring.jpa.hibernate.ddl-auto (enum) is a
Hibernate feature that controls the behavior in a more fine-grained
way. See below for more detail.You can set spring.jpa.hibernate.ddl-auto explicitly and the standard
Hibernate property values are none, validate, update, create,
create-drop.
你可以看到没有什么新东西(与休眠不同)
ddl-auto = update – 生成更改但不会删除未映射的列.
例如,您可以拥有一个包含10列的表,并且仅映射其中的3列,在这种情况下,自动模式可能会删除它们,但对于hibernate / jpa完整映射表实体不是必需的.这是2011年11月创建的jira ticket Alter and drop columns with hbm2ddl.auto=update,现在状态为“未修复”.
如果您经常更新数据库(您的域模型已更改),您可以使用ddl / dml工具,如liquibase,flywaydb.您在xml文件和执行工具中描述数据库更改,所有更改将自动应用(使用自动控制已修改的内容)之前和现在应该修改的内容).
刚推荐:
如果你不想猜测为什么某些东西在生产中下垂,那么最好使用ddl工具. hibernate.ddl-auto maily用于开发,不用于生产.在生产中,您可以使用none或验证 – 因为它们是安全的.
内容总结
以上是互联网集市为您收集整理的java – Spring boot JPA:删除实体更改列全部内容,希望文章能够帮你解决java – Spring boot JPA:删除实体更改列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。