Supposons que nous ayons la situation suivante: Nous souhaitons hériter de toutes les valeurs des articles de la classe sauf une par exemple. Comment pouvons-nous y parvenir? Je sais que si nous voulons hériter tout des articles juste écrireExclusion de l'attribut ID de l'entité de base dans la sous-entité dans Hibernate
public class Fruits extends Articles{ ... }
mais comment pouvons-nous parvenir à hériter des attributs spécifiques que des articles de classe, par exemple. chaque attribut sauf un et un attribut laisse intact?
EDIT:
@Entity
@Table(name = "Article")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Article {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
@Basic(optional = false)
@Column(name = "ART_ID")
private Long id;
@Basic(optional = false)
@Column(name = "ART_NAME")
private String name;
@Basic(optional = true)
@Column(name = "ART_COST")
private String cost;
// ...
}
@Entity
@Table(name="Fruits")
@AttributeOverrides({
@AttributeOverride(name="name", [email protected](name="ART_NAME")),
@AttributeOverride(name="cost", [email protected](name="ART_COST")),
})
// This is what is causing the issue. Fruits inherits something which is already defined in it's scope, and as the result can't declare exactly how to process it.
public class Fruits extends Article {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
@Basic(optional = false)
@Column(name = "FRU_ID")
private Long fruitID;
@Column(name="FRU_FROZEN")
private String fruFrozen;
//...
}
Donc, je pense que le code ne fonctionnera pas, car cela se traduira par plusieurs ID dans la hiérarchie de l'entité, ainsi est-il une autre façon que je peux résoudre ce problème?
Vous ne pouvez pas REDEFINER l'identité dans une sous-classe. S'il vous plaît lire la spécification JPA – DataNucleus