mirror of
https://github.com/querydsl/querydsl.git
synced 2026-06-13 21:01:01 +08:00
unified entity and superClass querytype constructor behaviour
This commit is contained in:
parent
6458747971
commit
dd0511d59d
@ -149,8 +149,8 @@ public class EntitySerializer extends AbstractSerializer{
|
||||
builder.append(" }\n\n");
|
||||
}
|
||||
|
||||
builder.append(" public " + queryType + "(PEntity<?> entity) {\n");
|
||||
builder.append(" this(entity.getMetadata());\n");
|
||||
builder.append(" public " + queryType + "(PEntity<? extends "+localName+"> entity) {\n");
|
||||
builder.append(" super(entity.getType(), entity.getEntityName(), entity.getMetadata());\n");
|
||||
builder.append(" }\n\n");
|
||||
builder.append(" public " + queryType + "(PathMetadata<?> metadata) {\n");
|
||||
builder.append(" super("+ localName + ".class, \"" + simpleName + "\", metadata);\n");
|
||||
|
||||
@ -26,7 +26,7 @@ public class SupertypeSerializer extends EntitySerializer{
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append(" public " + queryType + "(PEntity<? extends "+localName+"> entity) {\n");
|
||||
builder.append(" this(entity.getMetadata());\n");
|
||||
builder.append(" super(entity.getType(), entity.getEntityName(), entity.getMetadata());\n");
|
||||
builder.append(" }\n\n");
|
||||
builder.append(" public " + queryType + "(PathMetadata<?> metadata) {\n");
|
||||
builder.append(" super("+ localName + ".class, \"" + simpleName + "\", metadata);\n");
|
||||
|
||||
@ -0,0 +1,68 @@
|
||||
package com.mysema.query.hql;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.mysema.query.hql.domain.Animal;
|
||||
import com.mysema.query.hql.domain.Cat;
|
||||
import com.mysema.query.hql.domain.InheritedProperties;
|
||||
import com.mysema.query.hql.domain.QAnimal;
|
||||
import com.mysema.query.hql.domain.QCat;
|
||||
import com.mysema.query.hql.domain.QInheritedProperties;
|
||||
import com.mysema.query.hql.domain.QSuperclass;
|
||||
import com.mysema.query.hql.domain.Superclass;
|
||||
|
||||
public class TypeCastTest {
|
||||
|
||||
@Test
|
||||
public void mappedSuperclass(){
|
||||
QInheritedProperties subClass = QInheritedProperties.inheritedProperties;
|
||||
QSuperclass superClass = new QSuperclass(subClass);
|
||||
|
||||
assertEquals(InheritedProperties.class, superClass.getType());
|
||||
assertEquals(InheritedProperties.class.getSimpleName(), superClass.getEntityName());
|
||||
assertEquals("inheritedProperties", superClass.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mappedSuperclass2(){
|
||||
QInheritedProperties subClass = QInheritedProperties.inheritedProperties;
|
||||
QSuperclass superClass = new QSuperclass(subClass.getMetadata());
|
||||
|
||||
assertEquals(Superclass.class, superClass.getType());
|
||||
assertEquals(Superclass.class.getSimpleName(), superClass.getEntityName());
|
||||
assertEquals("inheritedProperties", superClass.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void subClassToSuper(){
|
||||
QCat cat = QCat.cat;
|
||||
QAnimal animal = new QAnimal(cat);
|
||||
|
||||
assertEquals(Cat.class, animal.getType());
|
||||
assertEquals(Cat.class.getSimpleName(), animal.getEntityName());
|
||||
assertEquals("cat", animal.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void subClassToSuper2(){
|
||||
QCat cat = QCat.cat;
|
||||
QAnimal animal = new QAnimal(cat.getMetadata());
|
||||
|
||||
assertEquals(Animal.class, animal.getType());
|
||||
assertEquals(Animal.class.getSimpleName(), animal.getEntityName());
|
||||
assertEquals("cat", animal.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void superClassToSub(){
|
||||
QAnimal animal = QAnimal.animal;
|
||||
QCat cat = new QCat(animal.getMetadata());
|
||||
|
||||
assertEquals(Cat.class, cat.getType());
|
||||
assertEquals(Cat.class.getSimpleName(), cat.getEntityName());
|
||||
assertEquals("animal", cat.toString());
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user