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

JPA Java Discussion :

@MappedSuperclass @JoinColumn Cascade persist problem


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut @MappedSuperclass @JoinColumn Cascade persist problem
    Bonjour.
    j'ai plusieurs tables qui on la même structure. j'ai donc fait des classes abstraites en utilisant @MappedSuperclass puis des classes dérivées @Entity spécifiant le nom de la table.

    parmi ces ensembles de tables j'ai des relations 1-1, et 1-n
    j'ai donc une Entitée Idoc qui dérive de AIdoc et un classe GmCode qui dérive de AGmCode

    j'ai crée ces entité par reverse depuis ma base avec eclipse et JPA ne signale aucune erreurs
    j'ai une relation 1-1 entre Idoc et GmCode

    j'ai donc un membre protected Idoc idoc dans GmCode et un membre protected GmCode gmCode dans Idoc
    le tout est annoté

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //dans GmCode
    	@JoinColumn(name="ID_IDOC", referencedColumnName="ID_IDOC", nullable=true, insertable=true, updatable=false)
    	protected Idoc idoc;
     
    	public Idoc getIdoc() {
    		return this.idoc;
    	}
     
    	public void setIdoc(Idoc idoc) {
    		this.idoc = idoc;
    	}
    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
    //dans Idoc
     
    	@Id
    	@Column(name="ID_IDOC", nullable=false, length=16)
    	private String idIdoc;
     
     
    	//bi-directional one-to-one association to Idoc
    	@OneToOne(mappedBy="GmCode", cascade=CascadeType.ALL)
    	protected GmCode gmCode;
     
    	public GmCode getGmCode() {
    		return gmCode;
    	}
     
    	public void setGmCode(GmCode gmCode) {
    		this.gmCode = gmCode;
    	}
    Mais je ne peux pas persisté mes objets.
    toutes mes classes sont dans le fichier xml et je peux les persisté si je retire les annotations concernant les relations
    mais si je mets la relation j'ai
    Code error : Sélectionner tout - Visualiser dans une fenêtre à part
    org.apache.openjpa.persistence.ArgumentException: "fr.aphp.ati.eai.hermes.ng485.model.GmCode.idoc" has columns with targets, but OpenJPA does not support any joins on this mapping in this context.

    j'ajoute que je suis sous JUNIT
    A+JYT

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    je suis reparti de Zero et j'ai créé mes classes uniquement concrète.

    vu que je travaille en TDD j'ai étape par étape et par essai erreur j'ai petit à petit remonté tout ce que je pouvais dans mes classes abstraites.

    j'ai fini par conclure que la référence et les méthodes d'accés à l'objet en relation doivent être dans la classe idoc concrète et ne peuvent pas être remonté dans la classe mère abstraite.

    donc même si le code (texte) est le même dans chaque classe concrète idoc il diffère par les classe concrètes utilisées et est donc en fait différent.

    A+JYT

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 28/05/2013, 16h32
  2. [EJB3] erreur cascade PERSIST
    Par missastro dans le forum Java EE
    Réponses: 1
    Dernier message: 25/08/2009, 18h57
  3. Connexion a Wanadoo, Probleme persistant
    Par mnina dans le forum Hardware
    Réponses: 9
    Dernier message: 01/08/2007, 18h14
  4. Réponses: 2
    Dernier message: 25/04/2007, 14h03
  5. [ EJB ] [JBoss ] [ XDoclet ] probleme avec cascade-delete
    Par Houbbba dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 03/05/2006, 11h05

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