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] Table de jointure & <composite-element>


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Par défaut [HIBERNATE] Table de jointure & <composite-element>
    Bonjour,
    Je tente d'utiliser une jointure de table one-to-many, avec un champ de classement dans ma table de jointure.

    Base : MySQL 4.0.15

    Mes tables :
    CREATE TABLE `sequence` (
    `seqId` bigint(20) unsigned NOT NULL auto_increment,
    `name` varchar(45) NOT NULL default '',
    `report` text NOT NULL,
    `create` datetime NOT NULL default '0000-00-00 00:00:00',
    `typeId` bigint(20) unsigned NOT NULL default '0',
    PRIMARY KEY (`seqId`)
    ) TYPE=MyISAM;
    CREATE TABLE `seq_jobs` (
    `id` int(10) NOT NULL default '0',
    `seqId` bigint(20) unsigned NOT NULL default '0',
    `jobId` bigint(20) unsigned NOT NULL default '0',
    `position` int(10) unsigned NOT NULL default '0',
    PRIMARY KEY (`seqId`,`jobId`,`id`)
    ) TYPE=MyISAM ROW_FORMAT=FIXED;
    CREATE TABLE `job` (
    `jobId` bigint(20) unsigned NOT NULL auto_increment,
    `script_path` varchar(45) NOT NULL default '',
    `params` varchar(45) NOT NULL default '',
    PRIMARY KEY (`jobId`)
    ) TYPE=MyISAM;
    Mes fichiers de mappings :
    <hibernate-mapping package="hibernate.mapping">
    <class name="Sequence" table="sequence" catalog="sequenceur">
    <id name="id" type="java.lang.Long">
    <column name="seqId" />
    <generator class="native" />
    </id>
    <property name="name" type="java.lang.String">
    <column name="name" length="45" not-null="true" />
    </property>
    <property name="report" type="java.lang.String">
    <column name="report" length="65535" not-null="true" />
    </property>
    <property name="create" type="java.util.Date">
    <column name="create" length="19" not-null="true" />
    </property>
    <many-to-one name="type" column="typeId" class="Type" />
    <set name="jobs" table="seq_jobs" inverse="true" order-by="position">
    <key column="seqId" />
    <composite-element class="JobSequence">
    <parent name="sequence" />
    <property name="position" column="position" />
    <many-to-one name="job" column="jobId" fetch="select" />
    </composite-element>
    </set>
    </class>
    </hibernate-mapping>
    <hibernate-mapping package="hibernate.mapping">
    <class name="Job" table="job" catalog="sequenceur">
    <id name="id" type="java.lang.Long">
    <column name="jobId" />
    <generator class="native"></generator>
    </id>
    <property name="scriptPath" type="java.lang.String">
    <column name="script_path" length="45" not-null="true" />
    </property>
    <property name="params" type="java.lang.String">
    <column name="params" length="45" not-null="true" />
    </property>
    <set name="sequences" table="seq_jobs" cascade="all">
    <key column="jobId" />
    <many-to-many class="Sequence" column="seqId" fetch="select" />
    </set>
    </class>
    </hibernate-mapping>
    Par contre, je n'ai pas de mapping pour la classe JobSequence comme conseillé dans le livre Hibernate 3.0 de Anthony Patricio chez Eyrolles.

    Le code que j'ai est le suivant et est identique à celui proposé dans le bouquin pages 104/105.

    public class Sequence extends AbstractSequence implements java.io.Serializable {

    /...

    public void importJob(final Job job) {
    Transaction tx = null;
    Session session = HibernateSessionFactory.currentSession();
    try {
    tx = session.beginTransaction();
    JobSequence js = new JobSequence();
    js.setSequence(this);
    js.setJob(job);
    js.setPosition(jobs.size() + 1);
    this.getSequenceJobs().add(js);
    tx.commit();
    } catch (HibernateException e) {
    e.printStackTrace();
    if (tx != null && tx.isActive())
    tx.rollback();
    } finally {
    try {
    session.close();
    } catch (HibernateException he) {
    // TODO: handle exception
    }
    }
    }
    }
    Merci d'avance pour votre aide.
    Ps: je ne suis pas un expert.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Par défaut
    C'est quoi le problème ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/12/2012, 14h59
  2. Hibernate/JPA: ManyToMany, mise à jour dans une table de jointure.
    Par PhilippeGibault dans le forum Hibernate
    Réponses: 1
    Dernier message: 19/04/2011, 14h40
  3. Réponses: 4
    Dernier message: 26/06/2006, 16h16
  4. Tables liées / Jointures
    Par giaco dans le forum Langage SQL
    Réponses: 18
    Dernier message: 02/05/2005, 10h17
  5. 2 Count() sur deux tables en jointures gauches
    Par Alexandre T dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2003, 16h53

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