创建后更改休眠模型对象的数据类型

Sum*_*eet 6 java mysql hibernate

我正在学习冬眠.我对hbm2dll.auto更新属性感到困惑.模型对象数据类型的更改不会更改mysql中表的数据类型.

首先,我使用userId作为数据类型int创建了User Pojo.最初我将hbm2dll属性设置为CREATE.

@Entity(name="user")
public class User {
    @Id
    private int userid; 
    private String username;
    ....

}
Run Code Online (Sandbox Code Playgroud)

为了首先保存数据,我创建了如下所示的用户对象并使用sessionFactory保存.

User user = new user();
     user.setUserid(1);
     user.setUsername("First User");
Run Code Online (Sandbox Code Playgroud)

由于上述努力,在userid数据为int的地方创建了用户表.

但后来我将pojo的userid数据类型更改为string.

我还改变了hbm2ddl属性.

因此,在此更改后,即使用户对象具有字符串作为userid,表userid数据类型也不会更改为varchar.如何使用hibernate更改表的数据类型.

die*_*ter 2

我相信update不能改变数据类型。

想象一下字符串类型的字段将更改为整数。现有数据会发生什么?

所以如果表不为空则无法保证更新(数据类型更新)。