Some RDBMS (most of them) allow the user to create object names (including schemas, tables, columns, constraints, views, procedures, triggers, and other) with special characters.
This happens more frequently with column names, but it can actually happen with tables, views also. It happens with less frequency on constraints, procedures, triggers, schemas as well as other less frequently used database objects.
At least the following cases need to be considered:
Use of SQL standard reserved words (probably SQL2003).
Use of RDBMS-specific reserved words.
Use of lower case ASCII characters.
Use of mixed case ASCII characters.
Use of non-ASCII characters. This can be specially problematic, since the DAO java classes need to name the properties (and their setters and getters) somehow, and the names will probably need to be escaped. Currently, Empusa escapes them using the "$" symbol (a valid Java ASCII character for identifiers), but it looks MyBatis does not allows the usage of this character for getters and setters. Another option is to use the underscore symbol for this purpose (the only other valid character for identifiers in Java, apart from the alphanumeric characters). If a new escaping strategy is considered, it will need to be backward compatible to the existing codes. This needs to be studied.
Diff:
Diff:
Diff:
Diff:
Diff:
Diff:
Diff: