В моем приложении я хочу зарегистрировать имя для пользовательского типа при объявлении пользовательского диалекта.Я не хочу использовать аннотацию @TypeDef, потому что я хочу иметь другой тип сопоставления для тестов, загружаемых при запуске, чем в конкретном приложении.До Hibernate 5.3 я делал что-то вроде
class TestCustomH2Dialect : PostgreSQL94Dialect() {
init {
this.registerColumnType(Types.JAVA_OBJECT, "LONGVARCHAR")
}
override fun contributeTypes(typeContributions: TypeContributions, serviceRegistry: ServiceRegistry) {
super.contributeTypes(typeContributions, serviceRegistry)
typeContributions.contributeType(
MyTestType(),
MyClass::class.java.canonicalName,
"MyTestType"
)
}
}
И тогда это объявление работает
@Type(type = "MyTestType")
@Column(name = "test_type", nullable = false)
var testType: TestType,
В Hibernate 5.3 этот метод contribType устарел, и из-за документации следует использовать версию только сBasicType в качестве параметра.Проблема в том, что когда я пытаюсь использовать его, мой псевдоним для типа не распознается, если я не добавлю @TypeDef или не напишу полный путь к классу в аннотации @Type.Есть ли альтернатива?