有没有办法避免休眠中@Column注释的columnDefinition属性?
假设我在数据库中的表中有一个列,该列定义为 enum('US', 'IN', 'GB', 'DE'etc) 即 enum of all country codes 。我将它映射到使用休眠注释表示表的 java 类中的属性“country_code”。但是没有定义 columnDefinition hibernate 会抛出一个异常,说
org.hibernate.HibernateException: Wrong column type for country_code。找到枚举,预期为 varchar。
有没有办法避免 @Column 注释中的 columnDefinition 属性?
例如:
private UserType userType;
@Column(name="user_type")
@Enumerated(EnumType.STRING)
public UserType getUserType() {
return userType;
}
public void setUserType(UserType userType) {
this.userType = userType;
}
当我使用此映射运行应用程序时,它会抛出一个异常说:
org.hibernate.HibernateException: Wrong column type in gobe_user_db.gobe_User for column user_type. Found: enum, expected: varchar(255)
但是,当我将 "columnDefinition="enum('abc', 'xyz')" 添加到 @Column 属性时,它会起作用。