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

Wildfly/JBoss Java Discussion :

comment utiliser fetch?


Sujet :

Wildfly/JBoss Java

  1. #1
    Membre habitué
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Points : 167
    Points
    167
    Par défaut comment utiliser fetch?
    bonjour,

    j'utilise des ejb3 et je fais des jointures entre differents ejbs.
    et je veux utiliser fetchType.LAZY que veux dire n'importer que lorsqu'on demande et optional=false veux dire accepter s'il n'exite pas .

    mais ça ne marche pas avec mon jboss 4.0.5, si une id_unite qui n'existe pas ça fait une erreur.
    a savoir que j'ai meme optionnal=true et ... preque toute les possibilités


    @ManyToOne//(fetch=FetchType.LAZY,optional=false)
    @JoinColumn(name="ID_UNITE",referencedColumnName="ID_UNITE",insertable=false, updatable=false)

    private RecTUnite tabunite;

    public RecTUnite getTabunite(){
    return (RecTUnite) this.tabunite;
    }

    merci

  2. #2
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    tu dis
    optional=false veux dire accepter s'il n'exite pas
    mais la spec (page 179) dit l'inverse : si true l'id peut etre null.
    boolean optional
    (Optional) Whether the value of the field or
    property may be null. This is a hint and is dis-
    regarded for primitive types; it may be used in
    schema generation.
    default value : true
    De plus pour un type primitif, c'est ignoré.

  3. #3
    Membre habitué
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Points : 167
    Points
    167
    Par défaut
    bonjour,

    j'ai oublie sur la commande optional=true pour ignorer si null, je pose cette question car j'utilise des grandes tables (plus 90000 lignes) qui ont une liaison entre eux.

    le probleme c'est lorsque j'utilise l'une des tables = EJB3 mappé sur cette table ça alourdi le serveur jboss ( a savoir que je n'ai pas ce genre de probleme avec OC4J) .

    c'est pourquoi je cherche à utiliser fetchlazy et optional mais sans succée j'ai utilise les differents possibilité.

    il ya t'il un moyen pour resoudre ce probleme?

    merci

  4. #4
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    Sur une liaison @ManyToOne tu dois avoir une clé étrangère dans ta table de départ. Cette clé etrangère est la clé primaire de la table unité. Il ne devrait pas y avoir de gros probleme de performance.

  5. #5
    Membre habitué
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Points : 167
    Points
    167
    Par défaut
    ok merci je vais essayer

  6. #6
    Membre habitué
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Points : 167
    Points
    167
    Par défaut
    bonjour,

    quand j'utilise FetchType.LAZY je reçois une erreur de jboss, j'ai compris que hibernate ne pas certifie totalement JPA="J2EE5".

    c'est pourquoi il ne comprenne pas le fetchlazy.

    et je veux utiliser le fecthlazy car je manipule des grandes tables plus 100 000 lignes ça concerne la coté performance.

    et j'ai constaté que jboss utilise hibernate automatiquement et pas JPA et je ne sais pas comment ne pas utiliser hibernate et utiliser JPA.

    merci

  7. #7
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    Erreur, Hibernate est certifiée JPA http://hibernate.org/397.html
    C'est JEE5 et pas J2EE5.

    Montres-nous l'erreur

  8. #8
    Membre habitué
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Points : 167
    Points
    167
    Par défaut
    merci,

    mon code est:

    @ManyToOne(fetch=FetchType.LAZY,optional=false)

    @JoinColumn(name="CONSERNE",referencedColumnName="MATRICULE",insertable=false, updatable=false)

    private RecTPersonnel consernepers;

    public RecTPersonnel getConsernepers(){
    return (RecTPersonnel) this.consernepers;
    }
    public void setConsernepers(RecTPersonnel pers){
    this.consernepers=pers;
    }

    //////////

    mon erreur est :

    2007-06-14 07:32:48,113 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/reclamation].[faces]] Servlet.service() for servlet faces threw exception
    javax.faces.el.EvaluationException: javax.faces.el.EvaluationException: Error getting property 'nometprenom' from bean of type model.RecTPersonnel_$$_javassist_15: org.hibernate.LazyInitializationException: could not initialize proxy - no Session
    at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:206)
    at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154)
    at oracle.adf.view.faces.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:55)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.ValueRenderer.getValue(ValueRenderer.java:63)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.ValueRenderer.getConvertedString(ValueRenderer.java:32)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.OutputTextRenderer.encodeEnd(OutputTextRenderer.java:56)
    at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeEnd(CoreRenderer.java:163)
    at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624)
    at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeChild(CoreRenderer.java:236)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.ColumnRenderer.renderKids(ColumnRenderer.java:143)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.ColumnRenderer._renderKids(ColumnRenderer.java:160)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.ColumnRenderer._renderTD(ColumnRenderer.java:319)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.ColumnRenderer._renderDataMode(ColumnRenderer.java:233)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.ColumnRenderer.encodeAll(ColumnRenderer.java:87)
    at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeEnd(CoreRenderer.java:159)
    at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624)

    //////////////////

  9. #9
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    Peux-tu relire la stacktrace que tu nous montres et nous dire la relation avec cette erreur et le sujet de la discussion ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  2. comment utiliser fetch.lazy ?
    Par chakala dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 10/07/2007, 14h05
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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