Hi All,

Running on trunk, I'm currently facing a problem very similar to
OPENJPA-1540. When I run the ReverseMappingTool on an Oracle database with
a lowercase column name, I end up with syntactically incorrect source code.
Whereas I should get output like this:

@Column(name="\"foobar\"")

I instead get un-compileable output like this:

@Column(name=""foobar"")

The reason why the problem only affects lowercase column names is because
Oracle generally requires names in all upper case. If a name is specified
with quotes around it, then it can be allowed to contain lowercase
characters.

I generally see two ways I can fix this:

1) Change the way the DBIdentifier's are initialized to surround the
identifier with a delimiter that includes the escape \.

2) Change the serialization stack (i.e.
AnnotationPersistenceMetaDataSerializer.serialize and
AnnotationEntry.toString) to run some character escape utility (like
StringEscapeUtils.escapeJava) at String construction time.

Which approach here is best? Or is there a better way I haven't considered?

Thanks,
Aron

Reply via email to