我的模型包含一个枚举,它由JPA映射到int
我的mysql数据库上的一列。
mysql具有本机enum
类型,使用起来会更方便。
如何配置JPA以使用这种类型?
@Entity
public class User extends Model {
public enum Role {
User,
Moderator,
Admin,
}
public Role role;
}
没有对枚举AFAIK的内置支持,但是也许您可以尝试以下解决方法(我从未尝试过测试过):
@Entity
public class User extends Model {
public enum Role {
User,
Moderator,
Admin,
}
@Enumerated(EnumType.STRING)
@Column(columnDefinition = "ENUM('User', 'Moderator', 'Admin')")
public Role role;
}
您可以使用EnumType.STRING将值存储为String在数据库中。
但是使用本机ENUM要求您使用@Column批注定义columnDefinition
,这需要将所有角色都编码在那里。在这里重复。
问题内容: 这段代码: 印刷品: 我就是价值 但是,此代码: 导致编译错误: 为什么在我使用final类而不是隐式final枚举的同时,创建对我来说似乎是匿名子类的类,覆盖该方法,却抛出了编译时错误? 更具体地说,为什么可以覆盖中的任何内容?我对代码有印象 大致相当于 在这种情况下,匿名性质是不允许的。 有什么不同?为什么枚举很特别? 问题答案: 根据JLS: 枚举类型是隐式最终的,除非它包含至少
问题内容: 我正在使用Spring 3.0.x,并按照枚举单例模式进行实现。 最近,我们开始通过Spring收集这些类型,因此我需要在类中添加@Component。 收集方法是 完成此操作后,我观察到失败,原因是Spring无法初始化枚举类(这是可以理解的)。 我的问题是- 是否有其他方法可以将枚举类标记为bean? 还是我需要更改实施方式? 问题答案: 如果确实需要使用基于枚举的单例(尽管默认情
为什么这是“良好的编码实践”?例如,当我制作一个石头剪刀游戏机时,大多数人建议使用枚举而不是字符串。有什么区别?
问题内容: 在Java中有可能发生这种情况吗?可以为Java中的枚举元素分配自定义数值吗? 问题答案:
问题内容: 是否可以在Java枚举中使用,还是需要使用?在我的测试中,它始终有效,但是我不确定是否可以保证。特别是,在枚举上没有方法,因此我不知道是否有可能获得一个枚举,该枚举将返回不同于的值。 例如,这样可以吗: 还是我需要这样写: 问题答案: 仅需2美分:这是Sun发布的Enum.java的代码,并且是JDK的一部分: