HHH-5836 Mapping collection of entities with same name and notnull
constraints from two different entities results in duplicate property mapping of Backref
This commit is contained in:
parent
cbe619f9ba
commit
eae079d283
|
@ -795,7 +795,7 @@ public abstract class CollectionBinder {
|
|||
String entityName = oneToMany.getReferencedEntityName();
|
||||
PersistentClass referenced = mappings.getClass( entityName );
|
||||
Backref prop = new Backref();
|
||||
prop.setName( '_' + fkJoinColumns[0].getPropertyName() + "Backref" );
|
||||
prop.setName( '_' + fkJoinColumns[0].getPropertyName() + '_' + fkJoinColumns[0].getLogicalColumnName() + "Backref" );
|
||||
prop.setUpdateable( false );
|
||||
prop.setSelectable( false );
|
||||
prop.setCollectionRole( collection.getRole() );
|
||||
|
|
|
@ -38,12 +38,19 @@ import static org.junit.Assert.assertFalse;
|
|||
*/
|
||||
public class BackrefTest extends BaseCoreFunctionalTestCase {
|
||||
@Override
|
||||
public String[] getMappings() {
|
||||
protected String[] getMappings() {
|
||||
return new String[] { "unidir/ParentChild.hbm.xml" };
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<?>[] getAnnotatedClasses() {
|
||||
// No test needed at this time. This was purely to test a
|
||||
// validation issue from HHH-5836.
|
||||
return new Class<?>[] { Parent1.class, Child1.class, Child2.class };
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCacheConcurrencyStrategy() {
|
||||
protected String getCacheConcurrencyStrategy() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
package org.hibernate.test.unidir;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Table(name = "CHILD1")
|
||||
public class Child1 {
|
||||
@Id
|
||||
@Column(name = "ID")
|
||||
private Long id;
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "CHILD1_ID", nullable = false)
|
||||
private List<Parent1> parents = new ArrayList<Parent1>();
|
||||
|
||||
public Long getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public List<Parent1> getParents() {
|
||||
return this.parents;
|
||||
}
|
||||
|
||||
public void setParents(List<Parent1> parents) {
|
||||
this.parents = parents;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package org.hibernate.test.unidir;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Table(name = "CHILD2")
|
||||
public class Child2 {
|
||||
@Id
|
||||
@Column(name = "ID")
|
||||
private Long id;
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "CHILD2_ID", nullable = false)
|
||||
private List<Parent1> parents = new ArrayList<Parent1>();
|
||||
|
||||
public Long getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public List<Parent1> getParents() {
|
||||
return this.parents;
|
||||
}
|
||||
|
||||
public void setParents(List<Parent1> parents) {
|
||||
this.parents = parents;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Hibernate, Relational Persistence for Idiomatic Java
|
||||
*
|
||||
* JBoss, Home of Professional Open Source
|
||||
* Copyright 2012 Red Hat Inc. and/or its affiliates and other contributors
|
||||
* as indicated by the @authors tag. All rights reserved.
|
||||
* See the copyright.txt in the distribution for a
|
||||
* full listing of individual contributors.
|
||||
*
|
||||
* This copyrighted material is made available to anyone wishing to use,
|
||||
* modify, copy, or redistribute it subject to the terms and conditions
|
||||
* of the GNU Lesser General Public License, v. 2.1.
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT A
|
||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
* You should have received a copy of the GNU Lesser General Public License,
|
||||
* v.2.1 along with this distribution; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301, USA.
|
||||
*/
|
||||
package org.hibernate.test.unidir;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Entity
|
||||
@Table(name = "PARENT1")
|
||||
public class Parent1 {
|
||||
@Id
|
||||
@Column(name = "ID")
|
||||
Long id;
|
||||
|
||||
public Long getId() {
|
||||
return this.id;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue