I managed to work it, I've just extended Cache dialect for Hibernate, and changed GlobalTemporary table which is not support DROP to LocalTemporaryTable. And changed column type for boolean, for supported in Caché data type bit. And looks like, I get working FHIR server which stores all data in Caché.
public class CacheDialect extends Cache71Dialect {
public CacheDialect() {
super();
this.registerColumnType(Types.BOOLEAN, "bit");
}
@Override
public MultiTableBulkIdStrategy getDefaultMultiTableBulkIdStrategy() {
return new LocalTemporaryTableBulkIdStrategy(
new IdTableSupportStandardImpl() {
@Override
public String generateIdTableName(String baseName) {
final String name = super.generateIdTableName( baseName );
return name.length() > 25 ? name.substring( 1, 25 ) : name;
}
@Override
public String getCreateIdTableCommand() {
return "create global temporary table";
}
},
AfterUseAction.DROP,
null
);
}
}
- Log in to post comments