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

Java EE Discussion :

[PostGreSQL] problème lié à la Case sensitive [EJB3 Entity]


Sujet :

Java EE

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 44
    Par défaut [PostGreSQL] problème lié à la Case sensitive
    Bonjour. J'utilise en ce moment PostGreSQL avec la technologie EJB. Pour des raisons de nomenclature, nous avons des tables et des séquences avec des lettre minuscules et majuscules. Après plusieurs tentatives j'ai réussi à régler X bugs liés à ma mauvaise connaissance de ce SGBR si particulier.

    J'ai réussi à régler le problème lié à la nomenclature du catalogue,du schéma et de la table mais le problème concerne la séquence, où Java me fait un mic mac pas possible.

    Voici le bout de code qui est utile à connaître:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @Entity
    @Table(name = "\"REFERENCE\"", catalog = "\"MachinTruc\"", schema = "\"MachinTruc2\"")
    @NamedQueries({@NamedQuery(name = "Reference.findAll", query = "SELECT r FROM Reference r"), @NamedQuery(name = "Reference.findByIdReference", query = "SELECT r FROM Reference r WHERE r.idReference = :idReference"), @NamedQuery(name = "Reference.findByNomReference", query = "SELECT r FROM Reference r WHERE r.nomReference = :nomReference"), @NamedQuery(name = "Reference.findByUniteReference", query = "SELECT r FROM Reference r WHERE r.uniteReference = :uniteReference"), @NamedQuery(name = "Reference.findByTypeReference", query = "SELECT r FROM Reference r WHERE r.typeReference = :typeReference")})
    public class Reference implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="REFERENCE_SEQUENCE_GENERATOR")
    @SequenceGenerator(name="REFERENCE_SEQUENCE_GENERATOR",sequenceName="REFERENCE_id_reference_seq")
        @Column(name = "id_reference")
        private Integer idReference;
    Comme vous pouvez le constater j'ai rajouté des \" dans la configuration des paramètres de @Table. Ce qui a permis de régler les erreurs du genre crossdatabase et unknow datatable & cie. Mais voilà qu'un autre problème , encore, est apparue:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))
    Server: unknown
    file:/C:/Documents%20and%20Settings/MuMu/Mes%20documents/NetBeansProjects/OK_Web/dist/gfdeploy/OK_Web-ejb_jar/-OK_Web-ejbPU login successful
    Local Exception Stack: 
    Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
    Internal Exception: org.postgresql.util.PSQLException: ERROR: invalid name syntax
    Error Code: 0
    Call: select currval('"MachinTruc"."MachinTruc2"."REFERENCE"_id_reference_seq')
    Or il aurait du m'écrire REFERENCE_id_reference_seq sans les guillemets. J'ai l'impression que Java s'arrête à ça @GeneratedValue(strategy=GenerationType.SEQUENCE et ne prend pas en compte la suite puisque le nom de la séquence correspond à NomdelaTable.NomPK.seq au lieu de prendre le nom de la séquence définie dans @SequenceGenerator(name="REFERENCE_SEQUENCE_GENERATOR",sequenceName="REFERENCE_id_reference_seq"). Résultat j'ai des guillemets en trop.

    Pouvez-vous me donner une solution à ce problème?
    MERCI!!

  2. #2
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Par défaut
    ajoutes un \ devant le nom de la sequence REFERENCE_id_reference_seq, comme tu as fais pour la table, database ... ?

    c'est bizarre que tu ais eu à rajouter des \.
    Peut-être une question à poser dans le forum PostGreSQL

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 44
    Par défaut
    Bon j'ai changé la nomenclature et j'ai tout mis en minuscule. Ça marche

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

Discussions similaires

  1. [Doctrine] problème de case sensitive
    Par yanice dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 27/10/2007, 12h15
  2. [Oracle] Enlever le case sensitive???
    Par osmoze dans le forum Oracle
    Réponses: 21
    Dernier message: 18/07/2007, 09h40
  3. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  4. [ POSTGRESQL ] Problème de performance
    Par Djouls64 dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 26/05/2003, 16h18
  5. [PostgreSql] Problème de cadreage de char !!!
    Par moipastoi dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/05/2003, 18h01

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