A JoinColumn like the following: @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="\"NAME#\"", insertable=false, updatable=false) private OutTx transaction; will result in: org.hibernate.DuplicateMappingException: Table [XYZ contains phyical column name `NAME#` represented by different logical column names: `NAME#`, "NAME#" It seems like these lines in EJB3JoinColumn.addColumnBinding() won't replace the mapping with backticks: if ( StringHelper.isQuoted( getLogicalColumnName() ) || StringHelper.isQuoted( getLogicalColumnName() ) ) { logicalColumnName = StringHelper.quote( logicalColumnName ); }
Hibernate Jira : https://hibernate.atlassian.net/browse/HHH-8464
As described on HHH-8464: Dave, the mapping looks off (I think). In the test case, OutboundDistributorEligibility has the following: @Id @Column(name = "\"WETRN#\"", precision = 9, scale = 0) private BigInteger transactionNumber; ... @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="\"WETRN#\"", insertable=false, updatable=false) private OutboundNewDistributorTransaction transaction; That would try to create 2 physical columns with the "WETRN#" name. It looks to me like they're trying to define a derived primary key from the many-to-one OutboundNewDistributorTransaction foreign key (ie, the OutboundDistributorEligibility PK is the same as its FK referring to to OutboundNewDistributorTransaction). Instead, try this: Completely remove OutboundDistributorEligibility#transactionNumber. Add @Id to OutboundDistributorEligibility#transaction. OutboundDistributorEligibility.OutboundDistributorEligibilityPK will also need updated to refer to "transaction" instead of "transactionNumber". Please give that a shot first. I'll leave this open for now.
Dave, regardless of the mapping, there was a legitimate issue. Corrected upstream in HHH-8464. Do they need a one-off, or is this purely the permanent fix? If one-off, create an additional BZ?
Assuming this is the permanent fix (EAP 6.3.0). Dave, open a one-off if needed.
Dave stated a one-off wasn't needed -- easy workarounds are acceptable.
Actually, this will go into EAP 6.2.0 ER4's upgrade to Hibernate ORM 4.2.6.Final in 1010467.
verified on EAP 6.2.0.CR2