当前位置: 首页 > 面试题库 >

我可以将Play配置为使用mysql枚举而不是ints吗?

柳飞鸾
2023-03-14
问题内容

我的模型包含一个枚举,它由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的一部分: