当前位置: 首页 > 知识库问答 >
问题:

实体中的Micronaut数据和枚举字段

邹普松
2023-03-14

micronaut数据是否支持枚举字段?

我尝试创建枚举字段导致错误。使用MicronautTypeConverter框架添加了类型转换器,但仍然与它所述的错误相同

<代码>java。lang.NoSuchMethodError:“作废公司。同步运行。setStatus(java.lang.String)“同步运行的位置。状态为枚举字段,该字段具有如下转换器。

java prettyprint-override">@Factory
class TypeConverters {

  @Singleton
  fun syncStatusToString(): TypeConverter<SyncStatus, String> {
    return TypeConverter { value, targetType, context -> Optional.of(value.name) }
  }

  @Singleton
  fun stringToSyncStatus(): TypeConverter<String, SyncStatus> {
    return TypeConverter { value, targetType, context -> Optional.of(SyncStatus.valueOf(value)) }
  }
}

共有1个答案

袁泰
2023-03-14

使用JPA,您应该简单地使用@枚举(EnumType. STRING)注释枚举属性。

使用JDBC,它是开箱即用的。

 类似资料:
  • 问题内容: 我问这个问题有点傻,但是我找不到这个问题的简单答案。 以这个简单的实体为例: 它代表一个人,因此我想添加一个“ 性别 ”属性。 这将是“男性”或“女性”。所以呢? 我可以使用String,并要记住,“ m”代表男性,“ f”代表女性。 或者,我可以使用布尔值“ isMale”(是或否)。 但是,我认为无论哪种情况,Hibernate纯粹主义者都不会高兴:) 仔细搜索一下,我发现最佳实践

  • [命名空间: Serenity.Data.Mapping] - [程序集: Serenity.Data] Serenity 有一组字段标识控制字段行为。 public enum FieldFlags { None = 0, Insertable = 1, Updatable = 2, NotNull = 4, PrimaryKey = 8, Auto

  • 问题内容: 我们有一个带有枚举字段-的实体,我们想使用JPA注释-为它设置默认值。 但是,当我们将实体保存到数据库时,此字段的值为和。对于布尔字段- 正确的默认值()已保存。 如果改为使用:,则会在保存时得到以下异常: 我们做错了什么?为什么它仅适用于布尔值? 问题答案: 当某些SQL代码在未为emailCommunicationStatus列指定任何值的情况下插入一行时,您所做的工作很有用。在这

  • 我已经安装了最新版本的H2(10-06-2017)。H2控制台窗口将infor版本显示为H2 1.4.192(2016-05-26)。我对此感到困惑。此外,文档指定它支持枚举数据类型。但是当运行下面的sql查询时 创建表用户(用户id varchar(255)不为空,密码varchar(255)默认为空,用户类型enum('admin','doctor','houseceper')默认为空,主键(

  • 问题内容: 除了简单地为每个枚举创建查找表(以Id,代码和名称作为列)之外,是否有更好或更简便的方法将枚举(在C#等编程语言中可用的枚举)存储在SQL Server数据库中,而不是为每个枚举创建查找表(尤其是在存在枚举时)每个表中只有很少的几行)?我发现有一篇文章建议只为所有枚举创建一个查找表,并且有人批评这种方法违反了引用数据的完整性,因此有人批评该方法。如果枚举仅由一个表使用,那么使用一些预定