некоторые методы в нашей модели pojos были аннотированы так:
@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 значение null с помощью javaassist.
- установить примечание метода столбца к объекту примечания копии столбца, переопределяющему старый (я не знаю, возможно ли это)
Можно ли так "взломать" эти методы?
Любая помощь будет высоко ценится ...