-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
I am still trying to insert 2 beans into 2 separate tables, however bean 2 needs the userID from bean 1's insert.
I can't seem to find examples for this, and everything I try inserts the first bean, seems to get the id after insert, I do a setUserID on the second bean, then perform the insert, and I still get an exception that user_id cannot be null. It's NOT NULL! I am pretty frustrated with this. It should be simple, it's not. I've tried it with ODMG and with PersistenceBroker, both return the same problem.
Further the first insert gets commited even though the transaction commit is not called, and therefore I can't rollback any changes once the second insert fails.
I'm using RC4.
Here is what my insert looks like:
public final void addRegistration( final UserInfoBean user, final
UserLoginBean userLoginBean )
throws DataAccessException
{
final PersistenceBroker broker =
PersistenceBrokerFactory.defaultPersistenceBroker();
try
{
LOGGER.log( Level.FINEST, "Transaction open in " +
RegistrationDAOImpl.class.getName() ); broker.beginTransaction();
broker.store( user );
userLoginBean.setUserID( user.getUserID() );
broker.store( userLoginBean );
broker.commitTransaction();
}
catch( PersistenceBrokerException tab )
{
broker.abortTransaction();
throw DataAccessException.datastoreError( tab );
}
}XML:
<class-descriptor class="com.codepuccino.security.beans.UserLoginBean"
proxy="dynamic" table="CDPCNO_USER_LOGIN">
<field-descriptor id="1" name="userID" nullable="false"
column="USER_ID" jdbc-type="INTEGER" primarykey="true"/>
<field-descriptor name="loginName" nullable="false" column="USERNAME"
jdbc-type="VARCHAR"/>
<field-descriptor name="password" nullable="false" column="PASSWORD"
jdbc-type="VARCHAR"/>
<field-descriptor name="passwordReminder" column="REMINDER_CLUE"
jdbc-type="VARCHAR"/>
<field-descriptor name="statusID" column="STATUS_ID"
jdbc-type="INTEGER"/>
<field-descriptor name="lastLogin" nullable="false"
column="LAST_LOGIN" jdbc-type="TIMESTAMP"/>
<field-descriptor name="baseRole" column="BASE_ROLE"
jdbc-type="VARCHAR"/>
<reference-descriptor name="userInfoBean"
class-ref="com.codepuccino.security.beans.UserInfoBean"
auto-update="false" auto-delete="false">
<foreignkey field-ref="userID" field-id-ref="1"/>
</reference-descriptor>
</class-descriptor>
<class-descriptor class="com.codepuccino.security.beans.UserInfoBean"
proxy="dynamic" table="CDPCNO_USER_INFO">
<field-descriptor id="1" name="userID" nullable="false"
column="USER_ID" jdbc-type="INTEGER" primarykey="true"
autoincrement="true" />
<field-descriptor name="firstName" nullable="false"
column="FIRST_NAME" jdbc-type="VARCHAR"/>
<field-descriptor name="lastName" nullable="false" column="LAST_NAME"
jdbc-type="VARCHAR"/>
<field-descriptor name="midInit" column="MID_INIT"
jdbc-type="VARCHAR"/>
<field-descriptor name="nickname" column="NICKNAME"
jdbc-type="VARCHAR"/>
<collection-descriptor name="userLogins"
element-class-ref="com.codepuccino.security.beans.UserLoginBean"
auto-update="false" auto-delete="false">
<inverse-foreignkey field-ref="userID"/>
</collection-descriptor>
</class-descriptor>PLEASE what am I missing? I'm going gaga here because I don't see the problem.
R -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQE/uaZF+cV9vuB27SARAujIAJ9m8nJpgW5xVdN3OPb6ef9BlYSeHwCeMDUf ob+buyLnTASop68nj+D8Tyg= =mu+W -----END PGP SIGNATURE-----
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
