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 :

requêtes et héritage


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Par défaut requêtes et héritage
    Bonjour,

    Voilà j'ai une classe Document et des classes héritant de Documents comme par exemple Livre.
    J'ai une autre classe Bibliotheque qui a une relation ManyToMany avec des documents. Une Bibliotheque a un attribut content qui est une Collection de Documents.

    J'aimerai faire une requête qui me renvoie les Bibliotheques ayant des Livres comme content.

    J'ai essayé la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from Bibliotheque as bibli where bibli.content.DOCUMENTTYPE = 'LIVRE'
    Qui me renvoie une erreur.
    Et j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from Bibliotheque as annotation where bibli.content.type = 'Livre'"
    Mais les deux ne marchent pas.
    Une idée?
    Une bonne référence pour les requêtes Hibernate? J'ai lu le tutorial et je n'ai pas trouvé de réponses à mes questions...
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Ca dépend de ton mapping et comme tu ne nous le montres pas...

  3. #3
    Membre éclairé
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Par défaut
    J'utilise les Annotations hibernate.

    Ma classe Document :
    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
    @XmlRootElement
    @Entity
    @Table(name = "DOCUMENT")
    @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
    @DiscriminatorColumn(
        name="DOCUMENTTYPE",
        discriminatorType=DiscriminatorType.STRING
    )
    public abstract class Document implements Serializable
    {
    	@Id @GeneratedValue
        @Column(name = "DOCUMENT_ID")
    	private Long id;
     
    @Column(name = "DOCUMENT_TITLE")
    	private String title;
     
    	@Column(name = "DOCUMENT_URL")
    	private String url;
    }
    Ma classe Livre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    XmlRootElement
    @Entity
    @DiscriminatorValue("LIVRE")
    public class Livre extends Document
    {
    	@Column(name = "VALUE")
    	private int value;
    }
    Ma classe Bibliotheque
    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
     
    @XmlRootElement
    @Entity
    @Table(name = "BIBLIOTHEQUE")
    public class Bibliotheque 
    {
        @Id @GeneratedValue
        @Column(name = "BIBLIOTHEQUE_ID")
        private Long id;
     
    	@ManyToMany(cascade = CascadeType.ALL, targetEntity = Document.class)
    	@JoinTable(
    			name="BIBLIOTHEQUE_TO_DOC",
    			joinColumns=@JoinColumn(name="BIBLIOTHEQUE_ID"),
    	        inverseJoinColumns=@JoinColumn(name="DOCUMENT_ID")
    				)
    	private Collection<Document> content;
    }
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Je vois ça dans la documentation, teste si ça fonctionne:
    The default name of the discriminator column is DTYPE

Discussions similaires

  1. Requête SQL héritage
    Par devKillerZ dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/06/2012, 11h51
  2. [JPQL] Question sur une requête avec héritage
    Par saveriu dans le forum JPA
    Réponses: 1
    Dernier message: 21/08/2010, 09h54
  3. Héritage et requètes SQL
    Par Daikyo dans le forum SQL
    Réponses: 4
    Dernier message: 11/06/2008, 09h23
  4. héritage dans une requète sql
    Par 080983 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/08/2007, 18h21
  5. [héritage] requête sur classe fille
    Par Galak extra dans le forum Hibernate
    Réponses: 3
    Dernier message: 25/08/2006, 11h30

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