package org.mongodb.morphia; import org.bson.types.ObjectId; import org.junit.Test; import org.mongodb.morphia.annotations.Entity; import org.mongodb.morphia.annotations.Id; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; public class TestInheritance extends TestBase { @Test public void testSavingAndLoadingAClassWithDeepInheritance() { // given final Child jimmy = new Child(); jimmy.setName("jimmy"); getDs().save(jimmy); // when final Child loaded = getDs().get(Child.class, jimmy.getId()); // then assertNotNull(loaded); assertEquals(jimmy.getName(), loaded.getName()); } @Entity public static class Child extends Father { } @Entity public static class Father extends GrandFather { } @Entity public static class GrandFather { @Id private ObjectId id; private String name; public ObjectId getId() { return id; } public void setId(final ObjectId id) { this.id = id; } public String getName() { return name; } public void setName(final String name) { this.name = name; } } }