J'ai une hiérarchie avec trois classes Entity.Comment créer une entité Hibernate par son nom?
classe de base est défini comme suit:
@Entity(name = "User")
@Table(name = "`users`")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "`u_role`", discriminatorType = DiscriminatorType.INTEGER)
@Polymorphism(type = PolymorphismType.EXPLICIT)
public abstract class User implements Serializable {
et deux classes enfants:
@Entity(name = "Vendor")
@Table(name = "`vendors`")
@DiscriminatorValue("1")
public class Vendor extends User {
et
@Entity(name = "Customer")
@Table(name = "`customers`")
@DiscriminatorValue("0")
public class Customer extends User {
Tout fonctionne très bien. Hibernate enregistre et lit les objets comme prévu. Mais maintenant je veux être capable de créer un objet basé sur son type. Au lieu d'utiliser:
new Vendor()
Je veux utiliser une méthode de mise en veille prolongée qui me renvoyer une instance en fonction de son type (discriminateur) ou le nom de l'entité (par exemple - « vendeur »). Quelqu'un pourrait-il me dire s'il existe une telle méthode?
Voulez-vous créer des tables distinctes pour le fournisseur et le client? c'est ce que tu veux? –
J'ai des tables séparées pour le vendeur et le client. Comme je l'ai dit, ça fonctionne très bien. Je veux unifier le processus de création d'objet, afin que je puisse créer un nouvel utilisateur par type seulement. –