java - 用于 Hibernate 的 Kotlin 包级 TypeDefs
问题描述
我有一个 hibernate ( TipoSiNo
) 的自定义类型,这相当于YesNoType
西班牙语 (S/N) 的但是。
使用 java 时,我将此类型声明为 package-info.java 文件中布尔字段的默认值:
@TypeDefs(@TypeDef(name = "si_no", typeClass = TipoSiNo.class, defaultForType = Boolean.class))
package com.xyz;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;
import com...TipoSiNo;
这适用于 java 实体类,但是当我将它们转换为 kotlin 时出现错误:
Data conversion error converting "'S'...
所以我想我必须将 package-info 文件转换为 kotlin:
@file:TypeDefs(TypeDef(name = "si_no", typeClass = TipoSiNo::class, defaultForType = Boolean::class))
package com.xyz
import org.hibernate.annotations.TypeDef
import org.hibernate.annotations.TypeDefs
import com...TipoSiNo
但即便如此,它似乎也不起作用。
解决方案
Kotlin目前没有等价物package-info.java
。作为一种解决方法,您可以简单地package-info.java
在 Kotlin 中包含 a ,它将被处理。
如果您使用的是 Spring Boot,您可能会遇到这个额外的问题:How to configure package level @TypeDefs with Spring Hibernate:
当它们在 package-info.java 类时,似乎 spring 有一些问题来扫描 TypeDef。
推荐阅读
- python - pandas DataFrame 解析对行的内部引用
- angular - Angular CLI 能否用于通过 ssh 在远程服务器上构建和部署?
- php - 如何在 WordPress 页面模板中显示分类的帖子?
- optimization - 多节点 Neo4j 的匹配查询优化
- nginx - 在 nginx 后面设置 mongodb
- c# - 分支执行后如何返回管道根目录?
- google-cloud-platform - 按项目划分的 Google Cloud API 使用数据
- python - 试图在 macos 上使用 pip 安装任何东西,但不能
- ios - 删除服务器/后端帐户后,iOS 订阅会发生什么情况?
- html - 在 html 文件中使用填充进行样式设置