некоторых методов в нашей модели POJOs были аннотированными так:Изменения аннотации значения атрибута во время выполнения в Java
@Column(name="cli_clipping_id", updatable=false, columnDefinition = "varchar(" + ModelUtils.ID_LENGTH + ") COLLATE utf8_bin")
ColumnDefinition атрибут поставщик базы данных зависит, поэтому при попытке уронить схемы в HSQLDB с использованием Hibernate его терпит неудачу:
[ERROR] 16 jun 12:58:42.480 PM main [org.hibernate.tool.hbm2ddl.SchemaExport]
Unexpected token: COLLATE in statement [create table cms.edi_editorial_obj (edi_uuid varchar(23) COLLATE]
чтобы исправить это, я имею в виду на этом решении (но не хотят тратить время, если это не представляется возможным), во время выполнения, для каждого столбца метода аннотированный:
- Получить @Column аннотации
- Создать копию аннотации колонки, установка ColumnDefinition нуль с помощью javaassist.
- присваивателя колонка аннотация к колонку копии аннотаций объекту Переопределение старый (я не знаю, что это возможно)
Можно ли «взломать» эти методы таким образом?
Любая помощь была бы оценена ...
Я ответил на аналогичный вопрос: http://stackoverflow.com/questions/906671/jpa-how-do-i-pecpec-the-table-name-corresponding-to-a-class-at-runtime/940380 # 940380 –