繁体   English   中英

Kotlin package 级别 TypeDefs for Hibernate

[英]Kotlin package level TypeDefs for Hibernate

我有一个 hibernate ( TipoSiNo ) 的自定义类型,这相当于YesNoType但西班牙语 (S/N)。

使用 java 时,我将这种类型声明为 package-info.java 文件中 boolean 字段的默认值:

@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 info.java。 作为一种解决方法,您可以简单地在 Kotlin 中包含一个package-info.java ,它将被处理。

If you are using Spring Boot, you may run into this additional issue: How to configure package level @TypeDefs with Spring Hibernate :

似乎 spring 在 package-info.java class 时扫描 TypeDef 有一些问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM