在已经存在的表结构继承中,我添加了一个新的列类型(我删掉了一些代码)
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Account {
......
@Column // already existed column
private String name; // get/set also applied
@Column(length=20) // new added column
@Enumerated(EnumType.STRING) // get/set also applied
private AccountType type;
..........
}
@Entity
public User extends Account {
................ // some other already existed fields
}
在我的 persistence.xml 文件中,我正在使用下一个策略策略来生成 DDL
property name="eclipselink.ddl-generation" value="drop-and-create-tables"
当 DDL 生成正在处理Account表中新添加的列类型时,成功创建了,但是对于User表,根本没有这种列(策略是 TABLE_PER_CLASS)。当我删除数据库并再次创建它时,我修复了这个问题。之后,应用了当前一代的 DLL -用户中的类型也被添加为一列。有人“遇到”这种问题吗?我修复了数据库的删除和创建,但我不确定这应该是未来相同情况下的策略,特别是对于生产数据库
谢谢,西蒙·安杰洛夫