HHH-10598 - Oracle JDBC driver can't handle entities with a one-character name in some cases
This commit is contained in:
parent
ea7c7da9f5
commit
fde986778f
|
@ -10,7 +10,7 @@ package org.hibernate.test.annotations.cascade.multicircle.jpa.identity;
|
||||||
* No Documentation
|
* No Documentation
|
||||||
*/
|
*/
|
||||||
@javax.persistence.Entity
|
@javax.persistence.Entity
|
||||||
public class B extends AbstractEntity {
|
public class EntityB extends AbstractEntity {
|
||||||
private static final long serialVersionUID = 325417243L;
|
private static final long serialVersionUID = 325417243L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -19,7 +19,7 @@ public class B extends AbstractEntity {
|
||||||
@javax.persistence.OneToMany(cascade = {
|
@javax.persistence.OneToMany(cascade = {
|
||||||
javax.persistence.CascadeType.MERGE, javax.persistence.CascadeType.PERSIST, javax.persistence.CascadeType.REFRESH}
|
javax.persistence.CascadeType.MERGE, javax.persistence.CascadeType.PERSIST, javax.persistence.CascadeType.REFRESH}
|
||||||
, mappedBy = "b")
|
, mappedBy = "b")
|
||||||
private java.util.Set<G> gCollection = new java.util.HashSet<G>();
|
private java.util.Set<EntityG> gCollection = new java.util.HashSet<EntityG>();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -28,7 +28,7 @@ public class B extends AbstractEntity {
|
||||||
@javax.persistence.ManyToOne(cascade = {
|
@javax.persistence.ManyToOne(cascade = {
|
||||||
javax.persistence.CascadeType.MERGE, javax.persistence.CascadeType.PERSIST, javax.persistence.CascadeType.REFRESH}
|
javax.persistence.CascadeType.MERGE, javax.persistence.CascadeType.PERSIST, javax.persistence.CascadeType.REFRESH}
|
||||||
, optional = false)
|
, optional = false)
|
||||||
private C c;
|
private EntityC c;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,30 +38,30 @@ public class B extends AbstractEntity {
|
||||||
@javax.persistence.ManyToOne(cascade = {
|
@javax.persistence.ManyToOne(cascade = {
|
||||||
javax.persistence.CascadeType.MERGE, javax.persistence.CascadeType.PERSIST, javax.persistence.CascadeType.REFRESH}
|
javax.persistence.CascadeType.MERGE, javax.persistence.CascadeType.PERSIST, javax.persistence.CascadeType.REFRESH}
|
||||||
, optional = false)
|
, optional = false)
|
||||||
private D d;
|
private EntityD d;
|
||||||
|
|
||||||
public java.util.Set<G> getGCollection() {
|
public java.util.Set<EntityG> getGCollection() {
|
||||||
return gCollection;
|
return gCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGCollection(
|
public void setGCollection(
|
||||||
java.util.Set<G> parameter) {
|
java.util.Set<EntityG> parameter) {
|
||||||
this.gCollection = parameter;
|
this.gCollection = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public C getC() {
|
public EntityC getC() {
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setC(C parameter) {
|
public void setC(EntityC parameter) {
|
||||||
this.c = parameter;
|
this.c = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public D getD() {
|
public EntityD getD() {
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setD(D parameter) {
|
public void setD(EntityD parameter) {
|
||||||
this.d = parameter;
|
this.d = parameter;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,30 +12,30 @@ import java.util.Set;
|
||||||
* No Documentation
|
* No Documentation
|
||||||
*/
|
*/
|
||||||
@javax.persistence.Entity
|
@javax.persistence.Entity
|
||||||
public class C extends AbstractEntity {
|
public class EntityC extends AbstractEntity {
|
||||||
private static final long serialVersionUID = 1226955752L;
|
private static final long serialVersionUID = 1226955752L;
|
||||||
|
|
||||||
@javax.persistence.OneToMany(mappedBy = "c")
|
@javax.persistence.OneToMany(mappedBy = "c")
|
||||||
private Set<B> bCollection = new java.util.HashSet<org.hibernate.test.annotations.cascade.multicircle.jpa.identity.B>();
|
private Set<EntityB> bCollection = new java.util.HashSet<EntityB>();
|
||||||
|
|
||||||
@javax.persistence.OneToMany(cascade = {
|
@javax.persistence.OneToMany(cascade = {
|
||||||
javax.persistence.CascadeType.MERGE, javax.persistence.CascadeType.PERSIST, javax.persistence.CascadeType.REFRESH}
|
javax.persistence.CascadeType.MERGE, javax.persistence.CascadeType.PERSIST, javax.persistence.CascadeType.REFRESH}
|
||||||
, mappedBy = "c")
|
, mappedBy = "c")
|
||||||
private Set<D> dCollection = new java.util.HashSet<D>();
|
private Set<EntityD> dCollection = new java.util.HashSet<EntityD>();
|
||||||
|
|
||||||
public Set<B> getBCollection() {
|
public Set<EntityB> getBCollection() {
|
||||||
return bCollection;
|
return bCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setBCollection(Set<B> bCollection) {
|
public void setBCollection(Set<EntityB> bCollection) {
|
||||||
this.bCollection = bCollection;
|
this.bCollection = bCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<D> getDCollection() {
|
public Set<EntityD> getDCollection() {
|
||||||
return dCollection;
|
return dCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDCollection(Set<D> dCollection) {
|
public void setDCollection(Set<EntityD> dCollection) {
|
||||||
this.dCollection = dCollection;
|
this.dCollection = dCollection;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,17 +10,17 @@ package org.hibernate.test.annotations.cascade.multicircle.jpa.identity;
|
||||||
* No Documentation
|
* No Documentation
|
||||||
*/
|
*/
|
||||||
@javax.persistence.Entity
|
@javax.persistence.Entity
|
||||||
public class D extends AbstractEntity {
|
public class EntityD extends AbstractEntity {
|
||||||
private static final long serialVersionUID = 2417176961L;
|
private static final long serialVersionUID = 2417176961L;
|
||||||
|
|
||||||
@javax.persistence.OneToMany(mappedBy = "d")
|
@javax.persistence.OneToMany(mappedBy = "d")
|
||||||
private java.util.Set<B> bCollection = new java.util.HashSet<B>();
|
private java.util.Set<EntityB> bCollection = new java.util.HashSet<EntityB>();
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = false)
|
@javax.persistence.ManyToOne(optional = false)
|
||||||
private C c;
|
private EntityC c;
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = false)
|
@javax.persistence.ManyToOne(optional = false)
|
||||||
private E e;
|
private EntityE e;
|
||||||
|
|
||||||
@javax.persistence.OneToMany(cascade = {
|
@javax.persistence.OneToMany(cascade = {
|
||||||
javax.persistence.CascadeType.MERGE,
|
javax.persistence.CascadeType.MERGE,
|
||||||
|
@ -28,35 +28,35 @@ public class D extends AbstractEntity {
|
||||||
javax.persistence.CascadeType.REFRESH},
|
javax.persistence.CascadeType.REFRESH},
|
||||||
mappedBy = "d"
|
mappedBy = "d"
|
||||||
)
|
)
|
||||||
private java.util.Set<F> fCollection = new java.util.HashSet<F>();
|
private java.util.Set<EntityF> fCollection = new java.util.HashSet<EntityF>();
|
||||||
|
|
||||||
public java.util.Set<B> getBCollection() {
|
public java.util.Set<EntityB> getBCollection() {
|
||||||
return bCollection;
|
return bCollection;
|
||||||
}
|
}
|
||||||
public void setBCollection(
|
public void setBCollection(
|
||||||
java.util.Set<B> parameter) {
|
java.util.Set<EntityB> parameter) {
|
||||||
this.bCollection = parameter;
|
this.bCollection = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public C getC() {
|
public EntityC getC() {
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
public void setC(C c) {
|
public void setC(EntityC c) {
|
||||||
this.c = c;
|
this.c = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
public E getE() {
|
public EntityE getE() {
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
public void setE(E e) {
|
public void setE(EntityE e) {
|
||||||
this.e = e;
|
this.e = e;
|
||||||
}
|
}
|
||||||
|
|
||||||
public java.util.Set<F> getFCollection() {
|
public java.util.Set<EntityF> getFCollection() {
|
||||||
return fCollection;
|
return fCollection;
|
||||||
}
|
}
|
||||||
public void setFCollection(
|
public void setFCollection(
|
||||||
java.util.Set<F> parameter) {
|
java.util.Set<EntityF> parameter) {
|
||||||
this.fCollection = parameter;
|
this.fCollection = parameter;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,26 +10,26 @@ package org.hibernate.test.annotations.cascade.multicircle.jpa.identity;
|
||||||
* No Documentation
|
* No Documentation
|
||||||
*/
|
*/
|
||||||
@javax.persistence.Entity
|
@javax.persistence.Entity
|
||||||
public class E extends AbstractEntity {
|
public class EntityE extends AbstractEntity {
|
||||||
private static final long serialVersionUID = 1226955558L;
|
private static final long serialVersionUID = 1226955558L;
|
||||||
|
|
||||||
@javax.persistence.OneToMany(mappedBy = "e")
|
@javax.persistence.OneToMany(mappedBy = "e")
|
||||||
private java.util.Set<D> dCollection = new java.util.HashSet<org.hibernate.test.annotations.cascade.multicircle.jpa.identity.D>();
|
private java.util.Set<EntityD> dCollection = new java.util.HashSet<EntityD>();
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = true)
|
@javax.persistence.ManyToOne(optional = true)
|
||||||
private F f;
|
private EntityF f;
|
||||||
|
|
||||||
public java.util.Set<D> getDCollection() {
|
public java.util.Set<EntityD> getDCollection() {
|
||||||
return dCollection;
|
return dCollection;
|
||||||
}
|
}
|
||||||
public void setDCollection(java.util.Set<D> dCollection) {
|
public void setDCollection(java.util.Set<EntityD> dCollection) {
|
||||||
this.dCollection = dCollection;
|
this.dCollection = dCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public F getF() {
|
public EntityF getF() {
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
public void setF(F parameter) {
|
public void setF(EntityF parameter) {
|
||||||
this.f = parameter;
|
this.f = parameter;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,7 +10,7 @@ package org.hibernate.test.annotations.cascade.multicircle.jpa.identity;
|
||||||
* No Documentation
|
* No Documentation
|
||||||
*/
|
*/
|
||||||
@javax.persistence.Entity
|
@javax.persistence.Entity
|
||||||
public class F extends AbstractEntity {
|
public class EntityF extends AbstractEntity {
|
||||||
private static final long serialVersionUID = 1471534025L;
|
private static final long serialVersionUID = 1471534025L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -19,33 +19,33 @@ public class F extends AbstractEntity {
|
||||||
@javax.persistence.OneToMany(cascade = {
|
@javax.persistence.OneToMany(cascade = {
|
||||||
javax.persistence.CascadeType.MERGE, javax.persistence.CascadeType.PERSIST, javax.persistence.CascadeType.REFRESH}
|
javax.persistence.CascadeType.MERGE, javax.persistence.CascadeType.PERSIST, javax.persistence.CascadeType.REFRESH}
|
||||||
, mappedBy = "f")
|
, mappedBy = "f")
|
||||||
private java.util.Set<E> eCollection = new java.util.HashSet<E>();
|
private java.util.Set<EntityE> eCollection = new java.util.HashSet<EntityE>();
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = false)
|
@javax.persistence.ManyToOne(optional = false)
|
||||||
private D d;
|
private EntityD d;
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = false)
|
@javax.persistence.ManyToOne(optional = false)
|
||||||
private G g;
|
private EntityG g;
|
||||||
|
|
||||||
public java.util.Set<E> getECollection() {
|
public java.util.Set<EntityE> getECollection() {
|
||||||
return eCollection;
|
return eCollection;
|
||||||
}
|
}
|
||||||
public void setECollection(
|
public void setECollection(
|
||||||
java.util.Set<E> parameter) {
|
java.util.Set<EntityE> parameter) {
|
||||||
this.eCollection = parameter;
|
this.eCollection = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public D getD() {
|
public EntityD getD() {
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
public void setD(D parameter) {
|
public void setD(EntityD parameter) {
|
||||||
this.d = parameter;
|
this.d = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public G getG() {
|
public EntityG getG() {
|
||||||
return g;
|
return g;
|
||||||
}
|
}
|
||||||
public void setG(G parameter) {
|
public void setG(EntityG parameter) {
|
||||||
this.g = parameter;
|
this.g = parameter;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,27 +10,27 @@ package org.hibernate.test.annotations.cascade.multicircle.jpa.identity;
|
||||||
* No Documentation
|
* No Documentation
|
||||||
*/
|
*/
|
||||||
@javax.persistence.Entity
|
@javax.persistence.Entity
|
||||||
public class G extends AbstractEntity {
|
public class EntityG extends AbstractEntity {
|
||||||
private static final long serialVersionUID = 325417437L;
|
private static final long serialVersionUID = 325417437L;
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = false)
|
@javax.persistence.ManyToOne(optional = false)
|
||||||
private B b;
|
private EntityB b;
|
||||||
|
|
||||||
@javax.persistence.OneToMany(mappedBy = "g")
|
@javax.persistence.OneToMany(mappedBy = "g")
|
||||||
private java.util.Set<F> fCollection = new java.util.HashSet<F>();
|
private java.util.Set<EntityF> fCollection = new java.util.HashSet<EntityF>();
|
||||||
|
|
||||||
public B getB() {
|
public EntityB getB() {
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
public void setB(B parameter){
|
public void setB(EntityB parameter){
|
||||||
this.b = parameter;
|
this.b = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public java.util.Set<F> getFCollection() {
|
public java.util.Set<EntityF> getFCollection() {
|
||||||
return fCollection;
|
return fCollection;
|
||||||
}
|
}
|
||||||
public void setFCollection(
|
public void setFCollection(
|
||||||
java.util.Set<F> parameter) {
|
java.util.Set<EntityF> parameter) {
|
||||||
this.fCollection = parameter;
|
this.fCollection = parameter;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -66,21 +66,21 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
*/
|
*/
|
||||||
@RequiresDialectFeature(DialectChecks.SupportsIdentityColumns.class)
|
@RequiresDialectFeature(DialectChecks.SupportsIdentityColumns.class)
|
||||||
public class MultiCircleJpaCascadeIdentityTest extends BaseCoreFunctionalTestCase {
|
public class MultiCircleJpaCascadeIdentityTest extends BaseCoreFunctionalTestCase {
|
||||||
private B b;
|
private EntityB b;
|
||||||
private C c;
|
private EntityC c;
|
||||||
private D d;
|
private EntityD d;
|
||||||
private E e;
|
private EntityE e;
|
||||||
private F f;
|
private EntityF f;
|
||||||
private G g;
|
private EntityG g;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
b = new B();
|
b = new EntityB();
|
||||||
c = new C();
|
c = new EntityC();
|
||||||
d = new D();
|
d = new EntityD();
|
||||||
e = new E();
|
e = new EntityE();
|
||||||
f = new F();
|
f = new EntityF();
|
||||||
g = new G();
|
g = new EntityG();
|
||||||
|
|
||||||
b.getGCollection().add( g );
|
b.getGCollection().add( g );
|
||||||
b.setC( c );
|
b.setC( c );
|
||||||
|
@ -131,12 +131,12 @@ public class MultiCircleJpaCascadeIdentityTest extends BaseCoreFunctionalTestCas
|
||||||
|
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
s.getTransaction().begin();
|
s.getTransaction().begin();
|
||||||
b = ( B ) s.merge( b );
|
b = (EntityB) s.merge( b );
|
||||||
c = ( C ) s.merge( c );
|
c = (EntityC) s.merge( c );
|
||||||
d = ( D ) s.merge( d );
|
d = (EntityD) s.merge( d );
|
||||||
e = ( E ) s.merge( e );
|
e = (EntityE) s.merge( e );
|
||||||
f = ( F ) s.merge( f );
|
f = (EntityF) s.merge( f );
|
||||||
g = ( G ) s.merge( g );
|
g = (EntityG) s.merge( g );
|
||||||
s.delete( f );
|
s.delete( f );
|
||||||
s.delete( g );
|
s.delete( g );
|
||||||
s.delete( b );
|
s.delete( b );
|
||||||
|
@ -161,7 +161,7 @@ public class MultiCircleJpaCascadeIdentityTest extends BaseCoreFunctionalTestCas
|
||||||
public void testMerge() {
|
public void testMerge() {
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
s.getTransaction().begin();
|
s.getTransaction().begin();
|
||||||
b = (B) s.merge( b );
|
b = (EntityB) s.merge( b );
|
||||||
c = b.getC();
|
c = b.getC();
|
||||||
d = b.getD();
|
d = b.getD();
|
||||||
e = d.getE();
|
e = d.getE();
|
||||||
|
@ -176,14 +176,14 @@ public class MultiCircleJpaCascadeIdentityTest extends BaseCoreFunctionalTestCas
|
||||||
private void check() {
|
private void check() {
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
s.getTransaction().begin();
|
s.getTransaction().begin();
|
||||||
B bRead = (B) s.get( B.class, b.getId() );
|
EntityB bRead = (EntityB) s.get( EntityB.class, b.getId() );
|
||||||
Assert.assertEquals( b, bRead );
|
Assert.assertEquals( b, bRead );
|
||||||
|
|
||||||
G gRead = bRead.getGCollection().iterator().next();
|
EntityG gRead = bRead.getGCollection().iterator().next();
|
||||||
Assert.assertEquals( g, gRead );
|
Assert.assertEquals( g, gRead );
|
||||||
C cRead = bRead.getC();
|
EntityC cRead = bRead.getC();
|
||||||
Assert.assertEquals( c, cRead );
|
Assert.assertEquals( c, cRead );
|
||||||
D dRead = bRead.getD();
|
EntityD dRead = bRead.getD();
|
||||||
Assert.assertEquals( d, dRead );
|
Assert.assertEquals( d, dRead );
|
||||||
|
|
||||||
Assert.assertSame( bRead, cRead.getBCollection().iterator().next() );
|
Assert.assertSame( bRead, cRead.getBCollection().iterator().next() );
|
||||||
|
@ -191,9 +191,9 @@ public class MultiCircleJpaCascadeIdentityTest extends BaseCoreFunctionalTestCas
|
||||||
|
|
||||||
Assert.assertSame( bRead, dRead.getBCollection().iterator().next() );
|
Assert.assertSame( bRead, dRead.getBCollection().iterator().next() );
|
||||||
Assert.assertEquals( cRead, dRead.getC() );
|
Assert.assertEquals( cRead, dRead.getC() );
|
||||||
E eRead = dRead.getE();
|
EntityE eRead = dRead.getE();
|
||||||
Assert.assertEquals( e, eRead );
|
Assert.assertEquals( e, eRead );
|
||||||
F fRead = dRead.getFCollection().iterator().next();
|
EntityF fRead = dRead.getFCollection().iterator().next();
|
||||||
Assert.assertEquals( f, fRead );
|
Assert.assertEquals( f, fRead );
|
||||||
|
|
||||||
Assert.assertSame( dRead, eRead.getDCollection().iterator().next() );
|
Assert.assertSame( dRead, eRead.getDCollection().iterator().next() );
|
||||||
|
@ -213,12 +213,12 @@ public class MultiCircleJpaCascadeIdentityTest extends BaseCoreFunctionalTestCas
|
||||||
@Override
|
@Override
|
||||||
protected Class[] getAnnotatedClasses() {
|
protected Class[] getAnnotatedClasses() {
|
||||||
return new Class[]{
|
return new Class[]{
|
||||||
B.class,
|
EntityB.class,
|
||||||
C.class,
|
EntityC.class,
|
||||||
D.class,
|
EntityD.class,
|
||||||
E.class,
|
EntityE.class,
|
||||||
F.class,
|
EntityF.class,
|
||||||
G.class
|
EntityG.class
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
package org.hibernate.test.annotations.cascade.multicircle.nonjpa.identity;
|
package org.hibernate.test.annotations.cascade.multicircle.nonjpa.identity;
|
||||||
|
|
||||||
@javax.persistence.Entity
|
@javax.persistence.Entity
|
||||||
public class B extends AbstractEntity {
|
public class EntityB extends AbstractEntity {
|
||||||
private static final long serialVersionUID = 325417243L;
|
private static final long serialVersionUID = 325417243L;
|
||||||
|
|
||||||
@javax.persistence.OneToMany(mappedBy = "b")
|
@javax.persistence.OneToMany(mappedBy = "b")
|
||||||
|
@ -17,7 +17,7 @@ public class B extends AbstractEntity {
|
||||||
org.hibernate.annotations.CascadeType.MERGE,
|
org.hibernate.annotations.CascadeType.MERGE,
|
||||||
org.hibernate.annotations.CascadeType.REFRESH
|
org.hibernate.annotations.CascadeType.REFRESH
|
||||||
})
|
})
|
||||||
private java.util.Set<G> gCollection = new java.util.HashSet<G>();
|
private java.util.Set<EntityG> gCollection = new java.util.HashSet<EntityG>();
|
||||||
|
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = false)
|
@javax.persistence.ManyToOne(optional = false)
|
||||||
|
@ -27,7 +27,7 @@ public class B extends AbstractEntity {
|
||||||
org.hibernate.annotations.CascadeType.MERGE,
|
org.hibernate.annotations.CascadeType.MERGE,
|
||||||
org.hibernate.annotations.CascadeType.REFRESH
|
org.hibernate.annotations.CascadeType.REFRESH
|
||||||
})
|
})
|
||||||
private C c;
|
private EntityC c;
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = false)
|
@javax.persistence.ManyToOne(optional = false)
|
||||||
@org.hibernate.annotations.Cascade({
|
@org.hibernate.annotations.Cascade({
|
||||||
|
@ -36,30 +36,30 @@ public class B extends AbstractEntity {
|
||||||
org.hibernate.annotations.CascadeType.MERGE,
|
org.hibernate.annotations.CascadeType.MERGE,
|
||||||
org.hibernate.annotations.CascadeType.REFRESH
|
org.hibernate.annotations.CascadeType.REFRESH
|
||||||
})
|
})
|
||||||
private D d;
|
private EntityD d;
|
||||||
|
|
||||||
public java.util.Set<G> getGCollection() {
|
public java.util.Set<EntityG> getGCollection() {
|
||||||
return gCollection;
|
return gCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGCollection(
|
public void setGCollection(
|
||||||
java.util.Set<G> parameter) {
|
java.util.Set<EntityG> parameter) {
|
||||||
this.gCollection = parameter;
|
this.gCollection = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public C getC() {
|
public EntityC getC() {
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setC(C parameter) {
|
public void setC(EntityC parameter) {
|
||||||
this.c = parameter;
|
this.c = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public D getD() {
|
public EntityD getD() {
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setD(D parameter) {
|
public void setD(EntityD parameter) {
|
||||||
this.d = parameter;
|
this.d = parameter;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,11 +12,11 @@ import java.util.Set;
|
||||||
* No Documentation
|
* No Documentation
|
||||||
*/
|
*/
|
||||||
@javax.persistence.Entity
|
@javax.persistence.Entity
|
||||||
public class C extends AbstractEntity {
|
public class EntityC extends AbstractEntity {
|
||||||
private static final long serialVersionUID = 1226955752L;
|
private static final long serialVersionUID = 1226955752L;
|
||||||
|
|
||||||
@javax.persistence.OneToMany(mappedBy = "c")
|
@javax.persistence.OneToMany(mappedBy = "c")
|
||||||
private Set<B> bCollection = new java.util.HashSet<B>();
|
private Set<EntityB> bCollection = new java.util.HashSet<EntityB>();
|
||||||
|
|
||||||
@javax.persistence.OneToMany(mappedBy = "c")
|
@javax.persistence.OneToMany(mappedBy = "c")
|
||||||
@org.hibernate.annotations.Cascade({
|
@org.hibernate.annotations.Cascade({
|
||||||
|
@ -26,21 +26,21 @@ public class C extends AbstractEntity {
|
||||||
org.hibernate.annotations.CascadeType.REFRESH
|
org.hibernate.annotations.CascadeType.REFRESH
|
||||||
})
|
})
|
||||||
|
|
||||||
private Set<D> dCollection = new java.util.HashSet<D>();
|
private Set<EntityD> dCollection = new java.util.HashSet<EntityD>();
|
||||||
|
|
||||||
public Set<B> getBCollection() {
|
public Set<EntityB> getBCollection() {
|
||||||
return bCollection;
|
return bCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setBCollection(Set<B> bCollection) {
|
public void setBCollection(Set<EntityB> bCollection) {
|
||||||
this.bCollection = bCollection;
|
this.bCollection = bCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<D> getDCollection() {
|
public Set<EntityD> getDCollection() {
|
||||||
return dCollection;
|
return dCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDCollection(Set<D> dCollection) {
|
public void setDCollection(Set<EntityD> dCollection) {
|
||||||
this.dCollection = dCollection;
|
this.dCollection = dCollection;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,17 +10,17 @@ package org.hibernate.test.annotations.cascade.multicircle.nonjpa.identity;
|
||||||
* No Documentation
|
* No Documentation
|
||||||
*/
|
*/
|
||||||
@javax.persistence.Entity
|
@javax.persistence.Entity
|
||||||
public class D extends AbstractEntity {
|
public class EntityD extends AbstractEntity {
|
||||||
private static final long serialVersionUID = 2417176961L;
|
private static final long serialVersionUID = 2417176961L;
|
||||||
|
|
||||||
@javax.persistence.OneToMany(mappedBy = "d")
|
@javax.persistence.OneToMany(mappedBy = "d")
|
||||||
private java.util.Set<B> bCollection = new java.util.HashSet<B>();
|
private java.util.Set<EntityB> bCollection = new java.util.HashSet<EntityB>();
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = false)
|
@javax.persistence.ManyToOne(optional = false)
|
||||||
private C c;
|
private EntityC c;
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = false)
|
@javax.persistence.ManyToOne(optional = false)
|
||||||
private E e;
|
private EntityE e;
|
||||||
|
|
||||||
@javax.persistence.OneToMany(mappedBy = "d")
|
@javax.persistence.OneToMany(mappedBy = "d")
|
||||||
@org.hibernate.annotations.Cascade({
|
@org.hibernate.annotations.Cascade({
|
||||||
|
@ -29,35 +29,35 @@ public class D extends AbstractEntity {
|
||||||
org.hibernate.annotations.CascadeType.MERGE,
|
org.hibernate.annotations.CascadeType.MERGE,
|
||||||
org.hibernate.annotations.CascadeType.REFRESH
|
org.hibernate.annotations.CascadeType.REFRESH
|
||||||
})
|
})
|
||||||
private java.util.Set<F> fCollection = new java.util.HashSet<F>();
|
private java.util.Set<EntityF> fCollection = new java.util.HashSet<EntityF>();
|
||||||
|
|
||||||
public java.util.Set<B> getBCollection() {
|
public java.util.Set<EntityB> getBCollection() {
|
||||||
return bCollection;
|
return bCollection;
|
||||||
}
|
}
|
||||||
public void setBCollection(
|
public void setBCollection(
|
||||||
java.util.Set<B> parameter) {
|
java.util.Set<EntityB> parameter) {
|
||||||
this.bCollection = parameter;
|
this.bCollection = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public C getC() {
|
public EntityC getC() {
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
public void setC(C c) {
|
public void setC(EntityC c) {
|
||||||
this.c = c;
|
this.c = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
public E getE() {
|
public EntityE getE() {
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
public void setE(E e) {
|
public void setE(EntityE e) {
|
||||||
this.e = e;
|
this.e = e;
|
||||||
}
|
}
|
||||||
|
|
||||||
public java.util.Set<F> getFCollection() {
|
public java.util.Set<EntityF> getFCollection() {
|
||||||
return fCollection;
|
return fCollection;
|
||||||
}
|
}
|
||||||
public void setFCollection(
|
public void setFCollection(
|
||||||
java.util.Set<F> parameter) {
|
java.util.Set<EntityF> parameter) {
|
||||||
this.fCollection = parameter;
|
this.fCollection = parameter;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,26 +10,26 @@ package org.hibernate.test.annotations.cascade.multicircle.nonjpa.identity;
|
||||||
* No Documentation
|
* No Documentation
|
||||||
*/
|
*/
|
||||||
@javax.persistence.Entity
|
@javax.persistence.Entity
|
||||||
public class E extends AbstractEntity {
|
public class EntityE extends AbstractEntity {
|
||||||
private static final long serialVersionUID = 1226955558L;
|
private static final long serialVersionUID = 1226955558L;
|
||||||
|
|
||||||
@javax.persistence.OneToMany(mappedBy = "e")
|
@javax.persistence.OneToMany(mappedBy = "e")
|
||||||
private java.util.Set<D> dCollection = new java.util.HashSet<D>();
|
private java.util.Set<EntityD> dCollection = new java.util.HashSet<EntityD>();
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = true)
|
@javax.persistence.ManyToOne(optional = true)
|
||||||
private F f;
|
private EntityF f;
|
||||||
|
|
||||||
public java.util.Set<D> getDCollection() {
|
public java.util.Set<EntityD> getDCollection() {
|
||||||
return dCollection;
|
return dCollection;
|
||||||
}
|
}
|
||||||
public void setDCollection(java.util.Set<D> dCollection) {
|
public void setDCollection(java.util.Set<EntityD> dCollection) {
|
||||||
this.dCollection = dCollection;
|
this.dCollection = dCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public F getF() {
|
public EntityF getF() {
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
public void setF(F parameter) {
|
public void setF(EntityF parameter) {
|
||||||
this.f = parameter;
|
this.f = parameter;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,7 +10,7 @@ package org.hibernate.test.annotations.cascade.multicircle.nonjpa.identity;
|
||||||
* No Documentation
|
* No Documentation
|
||||||
*/
|
*/
|
||||||
@javax.persistence.Entity
|
@javax.persistence.Entity
|
||||||
public class F extends AbstractEntity {
|
public class EntityF extends AbstractEntity {
|
||||||
private static final long serialVersionUID = 1471534025L;
|
private static final long serialVersionUID = 1471534025L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -23,33 +23,33 @@ public class F extends AbstractEntity {
|
||||||
org.hibernate.annotations.CascadeType.MERGE,
|
org.hibernate.annotations.CascadeType.MERGE,
|
||||||
org.hibernate.annotations.CascadeType.REFRESH
|
org.hibernate.annotations.CascadeType.REFRESH
|
||||||
})
|
})
|
||||||
private java.util.Set<E> eCollection = new java.util.HashSet<E>();
|
private java.util.Set<EntityE> eCollection = new java.util.HashSet<EntityE>();
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = false)
|
@javax.persistence.ManyToOne(optional = false)
|
||||||
private D d;
|
private EntityD d;
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = false)
|
@javax.persistence.ManyToOne(optional = false)
|
||||||
private G g;
|
private EntityG g;
|
||||||
|
|
||||||
public java.util.Set<E> getECollection() {
|
public java.util.Set<EntityE> getECollection() {
|
||||||
return eCollection;
|
return eCollection;
|
||||||
}
|
}
|
||||||
public void setECollection(
|
public void setECollection(
|
||||||
java.util.Set<E> parameter) {
|
java.util.Set<EntityE> parameter) {
|
||||||
this.eCollection = parameter;
|
this.eCollection = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public D getD() {
|
public EntityD getD() {
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
public void setD(D parameter) {
|
public void setD(EntityD parameter) {
|
||||||
this.d = parameter;
|
this.d = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public G getG() {
|
public EntityG getG() {
|
||||||
return g;
|
return g;
|
||||||
}
|
}
|
||||||
public void setG(G parameter) {
|
public void setG(EntityG parameter) {
|
||||||
this.g = parameter;
|
this.g = parameter;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,27 +10,27 @@ package org.hibernate.test.annotations.cascade.multicircle.nonjpa.identity;
|
||||||
* No Documentation
|
* No Documentation
|
||||||
*/
|
*/
|
||||||
@javax.persistence.Entity
|
@javax.persistence.Entity
|
||||||
public class G extends AbstractEntity {
|
public class EntityG extends AbstractEntity {
|
||||||
private static final long serialVersionUID = 325417437L;
|
private static final long serialVersionUID = 325417437L;
|
||||||
|
|
||||||
@javax.persistence.ManyToOne(optional = false)
|
@javax.persistence.ManyToOne(optional = false)
|
||||||
private B b;
|
private EntityB b;
|
||||||
|
|
||||||
@javax.persistence.OneToMany(mappedBy = "g")
|
@javax.persistence.OneToMany(mappedBy = "g")
|
||||||
private java.util.Set<F> fCollection = new java.util.HashSet<F>();
|
private java.util.Set<EntityF> fCollection = new java.util.HashSet<EntityF>();
|
||||||
|
|
||||||
public B getB() {
|
public EntityB getB() {
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
public void setB(B parameter){
|
public void setB(EntityB parameter){
|
||||||
this.b = parameter;
|
this.b = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public java.util.Set<F> getFCollection() {
|
public java.util.Set<EntityF> getFCollection() {
|
||||||
return fCollection;
|
return fCollection;
|
||||||
}
|
}
|
||||||
public void setFCollection(
|
public void setFCollection(
|
||||||
java.util.Set<F> parameter) {
|
java.util.Set<EntityF> parameter) {
|
||||||
this.fCollection = parameter;
|
this.fCollection = parameter;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -66,21 +66,21 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
*/
|
*/
|
||||||
@RequiresDialectFeature(DialectChecks.SupportsIdentityColumns.class)
|
@RequiresDialectFeature(DialectChecks.SupportsIdentityColumns.class)
|
||||||
public class MultiCircleNonJpaCascadeIdentityTest extends BaseCoreFunctionalTestCase {
|
public class MultiCircleNonJpaCascadeIdentityTest extends BaseCoreFunctionalTestCase {
|
||||||
private B b;
|
private EntityB b;
|
||||||
private C c;
|
private EntityC c;
|
||||||
private D d;
|
private EntityD d;
|
||||||
private E e;
|
private EntityE e;
|
||||||
private F f;
|
private EntityF f;
|
||||||
private G g;
|
private EntityG g;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
b = new B();
|
b = new EntityB();
|
||||||
c = new C();
|
c = new EntityC();
|
||||||
d = new D();
|
d = new EntityD();
|
||||||
e = new E();
|
e = new EntityE();
|
||||||
f = new F();
|
f = new EntityF();
|
||||||
g = new G();
|
g = new EntityG();
|
||||||
|
|
||||||
b.getGCollection().add( g );
|
b.getGCollection().add( g );
|
||||||
b.setC( c );
|
b.setC( c );
|
||||||
|
@ -131,12 +131,12 @@ public class MultiCircleNonJpaCascadeIdentityTest extends BaseCoreFunctionalTest
|
||||||
|
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
s.getTransaction().begin();
|
s.getTransaction().begin();
|
||||||
b = ( B ) s.merge( b );
|
b = (EntityB) s.merge( b );
|
||||||
c = ( C ) s.merge( c );
|
c = (EntityC) s.merge( c );
|
||||||
d = ( D ) s.merge( d );
|
d = (EntityD) s.merge( d );
|
||||||
e = ( E ) s.merge( e );
|
e = (EntityE) s.merge( e );
|
||||||
f = ( F ) s.merge( f );
|
f = (EntityF) s.merge( f );
|
||||||
g = ( G ) s.merge( g );
|
g = (EntityG) s.merge( g );
|
||||||
s.delete( f );
|
s.delete( f );
|
||||||
s.delete( g );
|
s.delete( g );
|
||||||
s.delete( b );
|
s.delete( b );
|
||||||
|
@ -184,7 +184,7 @@ public class MultiCircleNonJpaCascadeIdentityTest extends BaseCoreFunctionalTest
|
||||||
public void testMerge() {
|
public void testMerge() {
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
s.getTransaction().begin();
|
s.getTransaction().begin();
|
||||||
b = ( B ) s.merge( b );
|
b = ( EntityB ) s.merge( b );
|
||||||
c = b.getC();
|
c = b.getC();
|
||||||
d = b.getD();
|
d = b.getD();
|
||||||
e = d.getE();
|
e = d.getE();
|
||||||
|
@ -199,14 +199,14 @@ public class MultiCircleNonJpaCascadeIdentityTest extends BaseCoreFunctionalTest
|
||||||
private void check() {
|
private void check() {
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
s.getTransaction().begin();
|
s.getTransaction().begin();
|
||||||
B bRead = ( B ) s.get( B.class, b.getId() );
|
EntityB bRead = (EntityB) s.get( EntityB.class, b.getId() );
|
||||||
Assert.assertEquals( b, bRead );
|
Assert.assertEquals( b, bRead );
|
||||||
|
|
||||||
G gRead = bRead.getGCollection().iterator().next();
|
EntityG gRead = bRead.getGCollection().iterator().next();
|
||||||
Assert.assertEquals( g, gRead );
|
Assert.assertEquals( g, gRead );
|
||||||
C cRead = bRead.getC();
|
EntityC cRead = bRead.getC();
|
||||||
Assert.assertEquals( c, cRead );
|
Assert.assertEquals( c, cRead );
|
||||||
D dRead = bRead.getD();
|
EntityD dRead = bRead.getD();
|
||||||
Assert.assertEquals( d, dRead );
|
Assert.assertEquals( d, dRead );
|
||||||
|
|
||||||
Assert.assertSame( bRead, cRead.getBCollection().iterator().next() );
|
Assert.assertSame( bRead, cRead.getBCollection().iterator().next() );
|
||||||
|
@ -214,9 +214,9 @@ public class MultiCircleNonJpaCascadeIdentityTest extends BaseCoreFunctionalTest
|
||||||
|
|
||||||
Assert.assertSame( bRead, dRead.getBCollection().iterator().next() );
|
Assert.assertSame( bRead, dRead.getBCollection().iterator().next() );
|
||||||
Assert.assertEquals( cRead, dRead.getC() );
|
Assert.assertEquals( cRead, dRead.getC() );
|
||||||
E eRead = dRead.getE();
|
EntityE eRead = dRead.getE();
|
||||||
Assert.assertEquals( e, eRead );
|
Assert.assertEquals( e, eRead );
|
||||||
F fRead = dRead.getFCollection().iterator().next();
|
EntityF fRead = dRead.getFCollection().iterator().next();
|
||||||
Assert.assertEquals( f, fRead );
|
Assert.assertEquals( f, fRead );
|
||||||
|
|
||||||
Assert.assertSame( dRead, eRead.getDCollection().iterator().next() );
|
Assert.assertSame( dRead, eRead.getDCollection().iterator().next() );
|
||||||
|
@ -236,12 +236,12 @@ public class MultiCircleNonJpaCascadeIdentityTest extends BaseCoreFunctionalTest
|
||||||
@Override
|
@Override
|
||||||
protected Class[] getAnnotatedClasses() {
|
protected Class[] getAnnotatedClasses() {
|
||||||
return new Class[]{
|
return new Class[]{
|
||||||
B.class,
|
EntityB.class,
|
||||||
C.class,
|
EntityC.class,
|
||||||
D.class,
|
EntityD.class,
|
||||||
E.class,
|
EntityE.class,
|
||||||
F.class,
|
EntityF.class,
|
||||||
G.class
|
EntityG.class
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ import javax.persistence.Table;
|
||||||
@Entity
|
@Entity
|
||||||
@Inheritance( strategy = InheritanceType.JOINED )
|
@Inheritance( strategy = InheritanceType.JOINED )
|
||||||
@org.hibernate.annotations.Proxy( proxyClass = A.class )
|
@org.hibernate.annotations.Proxy( proxyClass = A.class )
|
||||||
@Table( name = "A" )
|
@Table( name = "ENTITYA" )
|
||||||
public class AImpl implements A {
|
public class AImpl implements A {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ import javax.persistence.Table;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@org.hibernate.annotations.Proxy( proxyClass = B.class )
|
@org.hibernate.annotations.Proxy( proxyClass = B.class )
|
||||||
@Table( name = "B" )
|
@Table( name = "ENTITYB" )
|
||||||
public class BImpl extends AImpl implements B {
|
public class BImpl extends AImpl implements B {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ import javax.persistence.Table;
|
||||||
@Entity
|
@Entity
|
||||||
@Inheritance( strategy = InheritanceType.JOINED )
|
@Inheritance( strategy = InheritanceType.JOINED )
|
||||||
@org.hibernate.annotations.Proxy( proxyClass = Z.class )
|
@org.hibernate.annotations.Proxy( proxyClass = Z.class )
|
||||||
@Table( name = "Z" )
|
@Table( name = "ENTITYZ" )
|
||||||
public class ZImpl implements Z {
|
public class ZImpl implements Z {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
||||||
<!-- Generated Nov 9, 2006 6:27:53 PM by Hibernate Tools 3.2.0.beta7 -->
|
<!-- Generated Nov 9, 2006 6:27:53 PM by Hibernate Tools 3.2.0.beta7 -->
|
||||||
<hibernate-mapping>
|
<hibernate-mapping>
|
||||||
<class name="org.hibernate.test.annotations.xml.hbm.AImpl" table="A"
|
<class name="org.hibernate.test.annotations.xml.hbm.AImpl" table="ENTITYA"
|
||||||
proxy="org.hibernate.test.annotations.xml.hbm.A">
|
proxy="org.hibernate.test.annotations.xml.hbm.A">
|
||||||
<id name="AId" column="aID" type="java.lang.Integer">
|
<id name="AId" column="aID" type="java.lang.Integer">
|
||||||
<generator class="identity"/>
|
<generator class="identity"/>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
||||||
<!-- Generated Nov 9, 2006 6:27:53 PM by Hibernate Tools 3.2.0.beta7 -->
|
<!-- Generated Nov 9, 2006 6:27:53 PM by Hibernate Tools 3.2.0.beta7 -->
|
||||||
<hibernate-mapping>
|
<hibernate-mapping>
|
||||||
<joined-subclass name="org.hibernate.test.annotations.xml.hbm.BImpl" table="B"
|
<joined-subclass name="org.hibernate.test.annotations.xml.hbm.BImpl" table="ENTITYB"
|
||||||
proxy="org.hibernate.test.annotations.xml.hbm.B"
|
proxy="org.hibernate.test.annotations.xml.hbm.B"
|
||||||
extends="org.hibernate.test.annotations.xml.hbm.AImpl">
|
extends="org.hibernate.test.annotations.xml.hbm.AImpl">
|
||||||
<key column="aID"/>
|
<key column="aID"/>
|
||||||
|
|
Loading…
Reference in New Issue