Search code examples
hibernatehibernate-annotations

Hibernate Annotation using base entity


In my project I have a POJO called BaseEntity as shown below.

class BaseEntity{
    private int id;
    public void setId(int id){
        this.id=id;
    }
    public int getId(){
        return id;
    }
}

And a set of other POJO entity classes like Movie, Actor,...

class Movie extends BaseEntity{
    private String name;
    private int year;
    private int durationMins;
    //getters and setters
}

I'm using BaseEntity only for using it as a place holder in some interfaces. I never have to store a BaseEntity object. I have to store only the entity objects extended from BaseEntity. How should I annotate these classes so that I get one table per entity extended from the BaseEntity. For movie it should be like (id, name, year, durationMins).


Solution

  • I found the answer in a totally unrelated post. I just have to annotate BaseEntity as @MappedSuperclass. The following code done what I needed.

    @MappedSuperclass
    class BaseEntity {
        @Id
        private int id;
        //getters and setters.
    }
    @Entity
    class Movie extends BaseEntity {
        @Column
        private String name;
        @Column
        private int year;
        @Column
        private int durationMins;
        //getters and setters
    }