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