You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Aron Lurie (JIRA)" <ji...@apache.org> on 2014/02/10 23:53:52 UTC

[jira] [Commented] (OPENJPA-1540) XMLSchemaSerializer outputs funny values for column name attributes (regression from 1.2.2)

    [ https://issues.apache.org/jira/browse/OPENJPA-1540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13897163#comment-13897163 ] 

Aron Lurie commented on OPENJPA-1540:
-------------------------------------

I need to revive this ticket. Running into this issue with an Oracle database. Whenever a column name contains lowercase characters, the generated annotation has incorrect delimiters as described by original reporter. 

EXAMPLE GENERATED CODE

import javax.persistence.*;

/**
 * Auto-generated by:
 * org.apache.openjpa.jdbc.meta.ReverseMappingTool$AnnotatedCodeGenerator
 */
@Entity
@Table(schema="MYUSER", name="T_CONSTRAINT")
public class TConstraint {
	private String constraint;
	private String description;

	public TConstraint () {
	}

	public TConstraint (String constraint) {
		this.constraint = constraint;
	}

	@Id
	@Column(name=""Constraint"", length=16)
	public String getConstraint() {
		return constraint;
	}

	public void setConstraint(String constraint) {
		this.constraint = constraint;
	}

	@Basic
	@Column(length=50)
	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}
}

OPENJPA REVISION INFO

revision.number=422266:1491915
openjpa.version=2.3.0-SNAPSHOT
openjpa.enhancer.revision=1461751 



> XMLSchemaSerializer outputs funny values for column name attributes (regression from 1.2.2)
> -------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-1540
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1540
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 2.0.0-beta
>            Reporter: Laird Nelson
>            Assignee: Jeremy Bauer
>
> During a reverse mapping run, it's often common to take the output of a SchemaGenerator and feed it to an XMLSchemaSerializer via its addAll() method.
> When the DBDictionary that was in effect at schema generation time is one that supports delimiters (see InformixDictionary), then the identifiers on all the artifacts in the SchemaGroup housed by the SchemaGenerator have quotes in them.
> Consequently, when the XMLSchemaSerializer writes its schemas to disk, you can get strange results.  Here's an example <column> fragment:
> <column name="&quot;foobar&quot;">
> Technically I suppose this may not be a bug in XMLSchemaSerializer, since it is simply serializing what it is handed.  But given that other tools consume its XML schema files, and given that the value of name attribute will be read in as a String, and given that usually what happens is that a String is turned into a DBIdentifier and delimited/quoted as necessary, I am not sure that delimiters should be stored by the XMLSchemaSerializer.
> A downstream effect of this bug is that any reverse  mapping that takes place from here involving annotations will not compile.  That is, if you ask the ReverseMappingTool for example to produce annotated Java objects, the annotations will look like this:
> @Column(name=""foobar"")
> ...which will not compile.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)