IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Persistance et généricité


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 49
    Par défaut Persistance et généricité
    Bonjour, après quelques heures de recherche infructueuses je me tourne vers vous :

    J'essaye en effet de déployer un projet EJB3 dont la persistance est gérée par hibernate. Certains de mes objets utilisent les types génériques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    @Entity
    public class Parent<T extends Infos> implements Serializable
    {
     
    	/**
         * 
         */
    	private static final long serialVersionUID = 4774824415905235816L;
     
    	private List<T> myInfos;
    	AbstractObject wrappedObject = null;
     
    	private int id;
     
    	public Parent()
    	{
    		this.myInfos = new ArrayList<T>();
    	}
     
    	public Parent(AbstractObject wrappedObject)
    	{
    		myInfos = new ArrayList<T>();
    		this.wrappedObject = wrappedObject;
    	}
     
    	@OneToMany(cascade =
    	{ CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH })
    	public List<T> getMyInfos()
    	{
    		return myInfos;
    	}
     
    	public void setMyInfos(List<T> myInfos)
    	{
    		this.myInfos = myInfos;
    	}
     
    	@Id
    	@GeneratedValue
    	public int getId()
    	{
    		return id;
    	}
     
    	public void setId(int id)
    	{
    		this.id = id;
    	}
     
    	public AbstractObject getWrappedObject()
    	{
    		return wrappedObject;
    	}
     
    	public void setWrappedObject(AbstractObject wrappedObject)
    	{
    		this.wrappedObject = wrappedObject;
    	}
     
    }
    J'ai l'erreur suivante lors du déploiement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Property entities.common.Parent.myInfos has an unbound type and no explicit target entity. Resolve this Generic usage issue or set an explicit target attribute (eg @OneToMany(target=) or use an explicit @Type
    A d'autres endroits du projet je persiste déjà des types génériques et je n'ai pas de problème (hibernate semble créer les tables correspondantes aux différentes valeures de T par reflexivité). Ici quelque chose l'en empêche et je ne sais pas quoi.

    Merci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par dwarfman78 Voir le message
    J'ai l'erreur suivante lors du déploiement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Property entities.common.Parent.myInfos has an unbound type and no explicit target entity. Resolve this Generic usage issue or set an explicit target attribute (eg @OneToMany(target=) or use an explicit @Type
    A d'autres endroits du projet je persiste déjà des types génériques et je n'ai pas de problème (hibernate semble créer les tables correspondantes aux différentes valeures de T par reflexivité). Ici quelque chose l'en empêche et je ne sais pas quoi.

    Merci d'avance.
    Dans le message d'erreur, il y a aussi des suggestions sur comment résoudre le problème :
    les avez-vous essayées ?

  3. #3
    Membre actif
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 49
    Par défaut
    Bonjour, merci pour votre réponse.

    Le problème est que je ne peux pas expliciter le type (à l'aide de @Type) car il est inconnu (T)

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par dwarfman78 Voir le message
    Bonjour, merci pour votre réponse.

    Le problème est que je ne peux pas expliciter le type (à l'aide de @Type) car il est inconnu (T)
    il n'est pas totalement inconnu puisqu'il "extends" Infos…

  5. #5
    Membre actif
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 49
    Par défaut
    Je m'en suis sorti en utilisant le @MappedSuperclass au niveau des objets generics.

    Il suffit alors de faire hériter nos entity de cette classe généric en spécifiant le paramètre générique. Les attributs sont alors correctement mappés dans la classe fille.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [architecture] pour de la généricité, vous feriez quoi ?
    Par Alec6 dans le forum Débats sur le développement - Le Best Of
    Réponses: 39
    Dernier message: 03/07/2006, 14h39
  2. [Persistance] Conseil cette couche ?
    Par Alec6 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 16/06/2004, 11h21
  3. Processus persistant
    Par LeChip dans le forum Linux
    Réponses: 6
    Dernier message: 18/05/2004, 17h13
  4. [PaintBox] Persistance du dessin non créé dans onPaint
    Par princesse dans le forum C++Builder
    Réponses: 10
    Dernier message: 21/04/2004, 17h47
  5. [Persistence][Framework]Avis.
    Par quilo dans le forum Persistance des données
    Réponses: 5
    Dernier message: 10/09/2003, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo