employeeDesc列的默认长度为varchar(255)。 现在我希望改变它。 我试过给持久化课程定制长度。
@Entity
public class EmployeeDetails {
@Id
private int employeeId;
private String employeeName;
private int employeeAge;
@Column (length = 500)
private String employeeDesc;
// getters and setters
}
这是我的休眠配置。
<property name="hbm2ddl.auto">update</property>
如果我试图为字段employeeDesc提供超过255的值,我收到错误说
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'employeeDesc' at row 1
有没有更好的方法来更改employeeDesc的长度而不更改“hbm2ddl.auto”&gt;更新属性?
答案 0 :(得分:0)
答案 1 :(得分:0)
在更新/验证期间,Hibernate不会更新列长度。您可以尝试使用Liquibase。但我不确定您是否可以将Hibernate update
与Liquibase
一起使用。
答案 2 :(得分:0)
hibernate.hbm2ddl.auto value="update"
不会更改列定义(如果已存在)。
如果仅通过从您的实体中删除表中的可用列,这甚至都不会删除。
hibernate.hbm2ddl.auto value="update"
可以仅添加新列/新索引/新约束。