2017-03-02 1 views
0

j'ai des champs communs dans toutes les tables de DatabaseMise en veille prolongée n'est pas se Héritée attributs dans la classe parente de POJO

de ADDED_ON et added_by

J'ai créé une classe POJO:

public class CommonBean{ 

    @Column(name="added_on") 
    public Date addedOn; 

    @Column(name="added_by") 
    public Integer addedBy; 

    //setters and getters 
} 

Et tous les pojo classes sont extends que pojo classe:

exemple:

@Table(name = "employee") 
@Entity 
public class HrEmployee extends CommonBean implements java.io.Serializable{ 

    private static final long serialVersionUID = 1L; 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    public Integer id; 

    @Column(name="first_name") 
    private String firstName; 

    @Column(name="middle_name") 
    private String middleName; 

    @Column(name="last_name") 
    private String lastName; 
} 

Mais quand je fais appel méthode de la liste des critères de mise en veille prolongée. Je peux voir la requête générée dans la console:

Hibernate: 
    /* criteria query */ select 
     this_.id as y0_, 
     this_.first_name as y2_, 
     this_.middle_name as y3_, 
     this_.last_name as y4_ 
    from 
     hr_employee this_ 

Pourquoi ne reçoit pas les attributs de sa classe parent?

Je ne sais pas si c'est possible ou si je fais des erreurs quelque part.

Merci

+0

Essayez patrimoine de l'entité - https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#entity-inheritance – Chaitanya

Répondre

0

Annoter classe CommonBean avec annotations @MappedSuperclass

0

Vous devez annoter super classe avec @MappedSuperclass. voici comment vous dites mise en veille prolongée pour hériter des propriétés de classe super this will help you