When I use Table annotation:
@Table(name = "\"TableName\"")
BatooJPA use in MySQL query "TableName" instead of TableName
BatooJPA does not sanitize the name of the table. Why do you put the quotation marks around the name?
Because I make some benchmark of different JPA providers, and try to have same source for all of them. And BatooJPA is the only one, which has this issue.
However removing quotation marks, seems to work ok, but still I am interesting why others JPA providers works well with quotation marks.
That is an interesting point. As I said earlier, BatooJPA does NOT sanitize the table names. Obviously others do.
Out of curiosity why do you need the quotes? If there's a use case we certainly may implement a DB specific sanitizing processor.
I found out, I really don't need them. First I have only
class TableName ...
But with Eclipse(Top)Link I get errors, because it change TableName to TABLENAME, so after searching I find that I can write @Table(name = "\"TableName\""), and with this everything works OK, until I try BatooJPA, but with @Table(name = "TableName") works all JPA providers, which I already try
OK still do not understand with Eclipselink does not work with TableName. However I'll keep the issue open for further investigation to be inline with other providers.
As I understand, the quotation should be replace by JPA provider to the database delimiters for long identifier / case sensitive / reserved word (for example for MSSQL something like [...] or '...').