rendered paste body@MappedSuperclass@Entity@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)public interface ExerciseInterface { public abstract byte[] getImage(); public abstract void setImage(byte[] image); public abstract String getName(); public abstract String getReferenceUrl(); public abstract void setName(String name); public abstract void setReferenceUrl(String referenceUrl); @ManyToOne public abstract ExerciseCategory getExerciseCategory(); public abstract void setExerciseCategory(ExerciseCategory exerciseCategory); public abstract String getDescription(); public abstract void setDescription(String description); @Id public abstract Long getId(); public abstract void setId(Long id);}package zeuzgroup.core.exercise;import javax.persistence.AttributeOverride;import javax.persistence.AttributeOverrides;import javax.persistence.Column;import javax.persistence.Embedded;import javax.persistence.Entity;@Entity@AttributeOverrides( { @AttributeOverride(name = "version", column = @Column(insertable = false, updatable = false)), @AttributeOverride(name = "id", column = @Column(insertable = false, updatable = false)) })public class ExerciseDuration extends ExerciseBase implements ExerciseInterface {public ExerciseDuration() {super(null);} @Embedded private Duration duration; public ExerciseDuration(ExerciseCategory exerciseCategory) { super(exerciseCategory); } public Duration getDuration() { return duration; } public void setDuration(Duration duration) { this.duration = duration; }}package zeuzgroup.core.exercise;import java.util.ArrayList;import java.util.List;import javax.persistence.Entity;import javax.persistence.OneToMany;import zeuzgroup.core.BaseEntity;@Entitypublic class ExerciseCategory extends BaseEntity { private String name; @OneToMany(mappedBy = "exerciseCategory") private List<ExerciseInterface> exercises = new ArrayList<ExerciseInterface>(); public ExerciseCategory(String name) { super(); this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<ExerciseInterface> getExercises() { return exercises; } public void setExercises(List<ExerciseInterface> exercises) { this.exercises = exercises; } public ExerciseCategory() { }}