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 :

[Hibernate]Erreur sur LongType.next(LongType.java:54)


Sujet :

Hibernate Java

  1. #1
    Membre chevronné Avatar de Kcirtap
    Inscrit en
    Juillet 2005
    Messages
    553
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 553
    Par défaut [Hibernate]Erreur sur LongType.next(LongType.java:54)
    Bonjour à tous,

    j'ai un problème avec Hibernate qui me donne la trace suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CAUSE: java.lang.NullPointerException
                                     java.lang.NullPointerException
    	at org.hibernate.type.LongType.next(LongType.java:54)
    	at org.hibernate.engine.Versioning.increment(Versioning.java:25)
    	at org.hibernate.event.def.DefaultFlushEntityEventListener.getNextVersion(DefaultFlushEntityEventListener.java:262)
    	at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java(Compiled Code))
    	at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java(Compiled Code))
    	at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:70)
    	at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:39)
    	at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:711)
    	at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1409)
    	at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:153)
    	at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:603)
    	at ch.gma.contrat.offre.persistence.dao.OffreHibernateDao.findCompteurById(OffreHibernateDao.java:942)
    La plupart du temps, la méthode findCompteurById se termine correctement et que pour certains paramètres (toujours les mêmes) une exception est levée.

    Voici la requête SQL qui est appelée lorsque l'exception est levée (sur une base de données Oracle) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        StringBuffer select = new StringBuffer("SELECT SUM(NBCOMPTEURREEL) AS CPTREEL ");
        select.append("FROM DISTRIBUTION ");
        select.append("WHERE IDR = " + idR.toString() + " ");
        select.append("AND IDSECT = " + idSect.toString() + " ");
        select.append("AND (FIN IS NULL OR ");
        select.append("     EXTRACT(YEAR FROM DTDIGRFIN) = " + today.get(Calendar.YEAR) + ")");
     
        Long result = (Long) getSession().createSQLQuery(select.toString()).addScalar("CPTREEL", Hibernate.LONG).uniqueResult();
    Ce que je ne comprends pas c'est que la même requête passe toujours, même avec les arguments qui lèvent une exception, lorsque je fais une requête interactive avec Toad sur la base de données.

    Est-ce que quelqu'un aurait une idée ?



    A plus

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    C'est laquelle, la ligne 54 de ton code?

    Vu l'erreur, je penche sur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Long result = (Long) getSession().createSQLQuery(select.toString()).addScalar("CPTREEL", Hibernate.LONG).uniqueResult();
    Dans ce cas, l'erreur viendrait non pas de la requête elle-même mais de ton code java pour récupérer ton "Long" à partir du résultat de la requête
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre chevronné Avatar de Kcirtap
    Inscrit en
    Juillet 2005
    Messages
    553
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 553
    Par défaut
    Merci pour ta réponse.

    Tu as raison, l'erreur vient bien de la ligne que tu as citée.

    Par contre, je ne vois pas d'où peut venir ensuite l'erreur, je retourne directement la valeur que j'obtiens.

    Saurais-tu ce qui bloque dans le org.hibernate.type.LongType.next() ?

    A plus

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/01/2012, 12h13
  2. erreur sur execution d'un script externe à l'application java.
    Par diamonds dans le forum EDI et Outils pour Java
    Réponses: 24
    Dernier message: 06/11/2009, 18h46
  3. Erreur sur le tutoriel Hibernate
    Par anapotheque dans le forum Hibernate
    Réponses: 1
    Dernier message: 23/10/2009, 23h10
  4. message d'erreur sur java! c'est à dire quoi?
    Par amal000 dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2006, 16h58

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