title: multi level polymophic trees with jackson serialization/deserialization
body: <p>is it possible to have a complex inheritance structure serialized and deserialized with jackson? what are the annotations for it? for example if I had the following classes</p>
  
  <pre><code>@Inheritance
  @JsonTypeInfo(
      use = JsonTypeInfo.Id.NAME,
      include = JsonTypeInfo.As.PROPERTY,
      property = "type")
  @JsonSubTypes({
       @Type(value = Dog.class,name = "dog")
       @Type(value = Cat.class,name = "cat")
  })
  
  public class Animal implements Serializable{
  
  @id
  long id;
  
  String name;
  
  }
  </code></pre>
  
  <p>this of course is the parent class. I know this is correct if cat and dog do not have any inheriting classes. if I want subclasses of dogs what would I need to change in both the animal class and the dog class?</p>
  
  <p>here is the second class just for reference</p>
  
  <pre><code>@JsonTypeName("dog")
  public class Dog extends Animal implements Serializable{
      //all my props etc here
  {
  </code></pre>
  
  <p>how would I make a retriever class and a yorki class that inherit from both animal and dog that I could cast to either one and have jackson not freak out at me.</p>