#849 - AbstractNamingConvention.getTableName inheritance logic differs from InheritInfo

This commit is contained in:
Rob Bygrave committed 2016-11-16 21:57:38 +13:00
1 parent 41a860ebb9
commit 259814f4d9
5 files changed
+58 -17

No files matched your search

@@ -6,6 +6,7 @@ import com.avaje.ebean.bean.BeanCollection.ModifyListenMode;
import com.avaje.ebean.common.BeanList;
import com.avaje.tests.model.basic.Animal;
import com.avaje.tests.model.basic.AnimalShelter;
import com.avaje.tests.model.basic.BigDog;
import com.avaje.tests.model.basic.Cat;
import com.avaje.tests.model.basic.Dog;
import org.junit.Test;
@@ -18,31 +19,36 @@ public class TestInheritanceOnMany extends BaseTestCase {
@Test
public void test() {
Cat cat = new Cat();
cat.setName("Puss");
Ebean.save(cat);
Dog dog = new Dog();
dog.setRegistrationNumber("DOGGIE");
Ebean.save(dog);
BigDog bd = new BigDog();
bd.setDogSize("large");
bd.setRegistrationNumber("BG1");
Ebean.save(bd);
AnimalShelter shelter = new AnimalShelter();
shelter.setName("My Animal Shelter");
shelter.getAnimals().add(cat);
shelter.getAnimals().add(dog);
Ebean.save(shelter);
AnimalShelter shelter2 = Ebean.find(AnimalShelter.class, shelter.getId());
List<Animal> animals = shelter2.getAnimals();
BeanList<?> beanList = (BeanList<?>)animals;
ModifyListenMode modifyListenMode = beanList.getModifyListenMode();
assertNotNull(modifyListenMode);
assertNotNull(Ebean.find(Animal.class).findList());
}
}
@@ -7,11 +7,9 @@ import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Version;
@Entity
@Table(name = "animals")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "species")
public abstract class Animal {
@@ -0,0 +1,19 @@
package com.avaje.tests.model.basic;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
@Entity
@DiscriminatorValue("BDG")
public class BigDog extends Dog {
String dogSize;
public String getDogSize() {
return dogSize;
}
public void setDogSize(String dogSize) {
this.dogSize = dogSize;
}
}