Как внести тип с ключом в спящем 5.3 - PullRequest
2 голосов
/ 09 апреля 2019

В моем приложении я хочу зарегистрировать имя для пользовательского типа при объявлении пользовательского диалекта.Я не хочу использовать аннотацию @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.Есть ли альтернатива?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...