Marco,

You are welcome. Great to see that your problem has been resolved.

Regards
Werner

On Wed, 22 Dec 2004 09:07:59 +0100 (CET), [EMAIL PROTECTED] wrote:

>Hi Werner, 
>thank you for your fast help, this was the problem. 
>
>
>Regards 
>Marco  
>
>
>----- Original Nachricht ----
>Von:     Werner Guttmann <[EMAIL PROTECTED]>
>An:      "[email protected]" <[email protected]>
>Datum:   21.12.2004 23:46
>Betreff: Re: [castor-user] Column 'idorganisation' cannot be null. Foreign key 
>Problem
>
>> Marco,
>> 
>> in your code fragment below, please make sure that you load the
>> OrganisationData instance within the transaction where you want to set your
>> Benutzer 
>> data. Iow,
>> 
>>                      OrganisationData orga =
>> (OrganisationData)jdo.load(OrganisationData.class,new
>> Integer(form.getIdOrganisation()));
>> 
>>                      db.begin();
>>                      benutzer.setOrganisationData(orga);
>>                      orga.addBenutzer(benutzer);
>>                      db.create(benutzer);
>>                      
>>                      db.commit();
>> 
>> should read 
>> 
>>                      db.begin();
>>                      OrganisationData orga =
>> (OrganisationData)jdo.load(OrganisationData.class,new
>> Integer(form.getIdOrganisation()));
>>                      benutzer.setOrganisationData(orga);
>>                      orga.addBenutzer(benutzer);
>>                      db.create(benutzer);
>>                      
>>                      db.commit();
>> 
>> 
>> Regards
>> Werner
>> 
>> On Tue, 21 Dec 2004 17:16:55 +0100 (CET), [EMAIL PROTECTED] wrote:
>> 
>> >Hi,
>> >
>> >i have  problems with the foreign key, i can't set the idorganisation in
>> table benutzer. The log says Column 'idorganisation' cannot be null. 
>> >
>> >
>> >-- 
>> >-- Tabellenstruktur f�r Tabelle `benutzer`
>> >-- 
>> >
>> >CREATE TABLE benutzer (
>> >  id int(11) NOT NULL default '0',
>> >  kennung varchar(8) NOT NULL default '',
>> >  passwort varchar(42) NOT NULL default '',
>> >  name varchar(100) NOT NULL default '',
>> >  vorname varchar(50) NOT NULL default '',
>> >  telefon varchar(25) default NULL,
>> >  email varchar(100) default NULL,
>> >  zustand char(1) NOT NULL default '',
>> >  idorganisation int(11) NOT NULL default '0',
>> >  PRIMARY KEY  (id),
>> >  UNIQUE KEY kennung (kennung),
>> >  KEY idorganisation (idorganisation)
>> >) ENGINE=InnoDB DEFAULT CHARSET=latin1;
>> >
>> >-- --------------------------------------------------------
>> >
>> >-- 
>> >-- Tabellenstruktur f�r Tabelle `organisation`
>> >-- 
>> >
>> >CREATE TABLE organisation (
>> >  id int(11) NOT NULL default '0',
>> >  name varchar(100) NOT NULL default '',
>> >  art char(1) NOT NULL default '',
>> >  PRIMARY KEY  (id),
>> >  UNIQUE KEY name (name)
>> >) ENGINE=InnoDB DEFAULT CHARSET=latin1;
>> >
>> >-- 
>> >-- Constraints der exportierten Tabellen
>> >-- 
>> >
>> >-- 
>> >-- Constraints der Tabelle `benutzer`
>> >-- 
>> >ALTER TABLE `benutzer`
>> >  ADD CONSTRAINT benutzer_ibfk_1 FOREIGN KEY (idorganisation) REFERENCES
>> organisation (id);
>> >
>> >---------------------------------------------------------------------------
>> -------------
>> >
>> >mapping.xml:
>> >
>> >    <class name="BenutzerData" identity="id" key-generator="MAX" >
>> >            <map-to table="benutzer" />
>> >            <field name="id" type="integer">
>> >                    <sql name="id" type="integer" />
>> >            </field>
>> >            <field name="kennung" type="string">
>> >                    <sql name="kennung" type="varchar" />
>> >            </field>
>> >            <field name="passwort" type="string">
>> >                    <sql name="passwort" type="varchar" />
>> >            </field>
>> >            <field name="name" type="string">
>> >                    <sql name="name" type="varchar" />
>> >            </field>
>> >            <field name="vorname" type="string">
>> >                    <sql name="vorname" type="varchar" />
>> >            </field>
>> >            <field name="telefon" type="string">
>> >                    <sql name="telefon" type="varchar" />
>> >            </field>
>> >            <field name="email" type="string">
>> >                    <sql name="email" type="varchar" />
>> >            </field>
>> >            <field name="zustand" type="string">
>> >                    <sql name="zustand" type="char" />
>> >            </field>
>> >            <field name="organisationData"
>> >                    type="OrganisationData" required="true">
>> >                    <sql name="idorganisation" />
>> >            </field>
>> >
>> >    </class>
>> >
>> >    <!--  Mapping for OrganisationData  -->
>> >    <class name="OrganisationData"
>> >            identity="id" key-generator="MAX">
>> >            <map-to table="organisation" />
>> >            <field name="id" type="integer" >
>> >                    <sql name="id" type="integer"/>
>> >            </field>
>> >            <field name="name" type="string">
>> >                    <sql name="name" type="varchar"/>
>> >            </field>
>> >            <field name="art" type="string">
>> >                    <sql name="art" type="char"/>
>> >            </field>
>> >            <field name="benutzer"
>> >                    type="BenutzerData"
>> >                    collection="arraylist" >
>> >                    <sql many-key="idorganisation" >
>> >            </field>
>> >    </class>
>> >
>> >---------------------------------------------------------
>> >
>> >BenutzerData.java:
>> >
>> >..
>> >    private OrganisationData organisationData;
>> >    
>> >    
>> >    /**
>> >     * @return Returns the organisationData.
>> >     */
>> >    public OrganisationData getOrganisationData() {
>> >            return organisationData;
>> >    }
>> >    /**
>> >     * @param organisationData The organisationData to set.
>> >     */
>> >    public void setOrganisationData(OrganisationData organisationData) {
>> >            this.organisationData = organisationData;
>> >    }
>> >..
>> >
>> >OrganisationData.java:
>> >
>> >..
>> >    private int id;
>> >    private String name = "";
>> >    private String art = "";
>> >    private ArrayList benutzer = new ArrayList();
>> >    
>> >    
>> >
>> >    /**
>> >     * @return Returns the benutzer.
>> >     */
>> >    public ArrayList getBenutzer() {
>> >            return benutzer;
>> >    }
>> >    /**
>> >     * @param benutzer The benutzer to set.
>> >     */
>> >    public void setBenutzer(ArrayList benutzer) {
>> >            this.benutzer = benutzer;
>> >    }
>> >    /**
>> >     * @param add benutzer to the collection benutzer
>> >     */
>> >    public void addBenutzer(BenutzerData benutzer){
>> >            this.benutzer.add(benutzer);
>> >            benutzer.setOrganisationData(this);
>> >    }
>> >..
>> >
>> >UserFactory.java:
>> >
>> >..
>> >                    OrganisationData orga =
>> (OrganisationData)jdo.load(OrganisationData.class,new
>> Integer(form.getIdOrganisation()));
>> >
>> >                    db.begin();
>> >                    
>> >                    System.out.println(">>>> orga.getId(): " + 
>> > orga.getId());  // orga is
>> not null -> id is set!!!
>> >
>> >                    benutzer.setOrganisationData(orga);
>> >                    orga.addBenutzer(benutzer);
>> >                    db.create(benutzer);
>> >                    
>> >                    db.commit();
>> >                    db.close();
>> >..
>> >
>> >---------------------------------------------------------
>> >logger output:
>> >
>> >..
>> >>>>> orga.getId():  1
>> >21.12.2004 16:47:30 org.exolab.castor.jdo.engine.SQLEngine create
>> >SCHWERWIEGEND: A fatal error occurred while creating/updating BenutzerData
>> using SQL: INSERT INTO benutzer 
>> (id,kennung,passwort,name,vorname,telefon,email,zustand,idorganisation)
>> VALUES (?,?,?,?,?,?,?,?,?)
>> >java.sql.SQLException: Column 'idorganisation' cannot be null
>> >    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2816)
>> >    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1518)
>> >..
>> >
>> >----------------------------------------------------------
>> >
>> >I use:
>> >castor-0.9.6-RC2
>> >mySQL 4.1
>> >
>> >Please help me.
>> >
>> >Thanks
>> >Marco
>> >
>> >
>> >Arcor-DSL: die echte Flatrate f�r alle Bandbreiten. Jetzt ohne
>> Einrichtungspreis
>> >einsteigen oder wechseln. Arcor-DSL ist in vielen Anschlussgebieten
>> verf�gbar.
>> >http://www.arcor.de/home/redir.php/emf-dsl-1
>> >
>> >
>> 
>> 
>
>Arcor-DSL: die echte Flatrate f�r alle Bandbreiten. Jetzt ohne 
>Einrichtungspreis
>einsteigen oder wechseln. Arcor-DSL ist in vielen Anschlussgebieten verf�gbar.
>http://www.arcor.de/home/redir.php/emf-dsl-1
>
>

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-user

Reply via email to