Hi Steven, ----- Original Message ----- From: "Steven Robertson" <[EMAIL PROTECTED]> To: "OJB Users List" <[EMAIL PROTECTED]> Sent: Saturday, June 14, 2003 7:51 PM Subject: Re: about OJB (autoincrement fields)
> Hello, > > I was interested in the same (i.e. using MySQL auto-increment values for > primary keys). I tried setting access="readonly" in the field-descriptor, > per the suggestion. This worked for objects created in isolation, but > screwed up with objects linked using <collection-descriptor> or > <reference-descriptor>. > > i.e. say I have a parent object with a collection of child objects, I > create them in memory then > . > broker.store(theparent); > . > > What happens is that parent and child object appear in the database with > MySQL auto-increment keys (starting from 1). However, the foreign key > reference in the child object does not refer to the parent that created it > (i.e. its still using OJB generated indexes). that's exactly one the problems when using Identity columns. In current CVS you can find a sequence manager implementation supporting Identity columns called SequenceManagerNativeImpl (SequenceManagerMySQLImpl is outdated). More info see javadoc. There is also a test case for hsql+MySQL called NativeIdentifierTest in OJB test suite. This test is using references - seems to work fine so far. Check out current CVS. Alternatively you can find sequence manager implementations not using Identity columns under http://db.apache.org/ojb/sequencemanager.html or try to write your own sequence manager (I'm very interested in new solutions ;-)). regards, Armin > > - Steven. > > > > ----- Original Message ----- > From: "Thomas Mahler" <[EMAIL PROTECTED]> > To: "JORGE IVAN MARMOLEJO" <[EMAIL PROTECTED]>; "OJB Users List" > <[EMAIL PROTECTED]> > Sent: Friday, June 13, 2003 11:14 PM > Subject: Re: about OJB (autoincrement fields) > > > > > > > > JORGE IVAN MARMOLEJO wrote: > > > Hi > > > I have a problem with an autoincrement field with SQL server database, > > > table is the follow: > > > create table Person( > > > id int primary key IDENTITY (1, 1) NOT NULL , > > > nombre varchar(30)); > > > in this case OJB intents to insert the id, which generates an error : > > > [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Cannot insert > > > explicit value for identity column in table 'test' when IDENTITY_INSERT > > > is set to OFF > > > > > > the same problem occurs with autoincrement fields of Mysql > > > is there away to tell OJB, not to insert id in the test table, because > > > it's an autoincrement?? > > > > you can set access="readonly" in the fielddescriptor. > > cheers, > > > > > > > > how can I solve this problem? > > > > > > thanks.... > > > > > > > > > ***************************************** > > > Jorge Ivan Marmolejo H. > > > Ingeniero Java > > > Universidad de San Buenaventura > > > > > > [EMAIL PROTECTED] > > > [EMAIL PROTECTED] > > > > > > ---------------------------------------------------------------------- -- > > > Do you Yahoo!? > > > Free online calendar > > > <http://us.rd.yahoo.com/mail_us/tag/*http://calendar.yahoo.com> with > > > sync to Outlook(TM). > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
