Hi Armin, Here are my OJB.properties (I stripped the comments for brevity):
----- repositoryFile=repository.xml useSerializedRepository=false serializedRepositoryPath=. PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFa ctoryDefaultImpl PersistenceBrokerClass=org.apache.ojb.broker.core.PersistenceBrokerImpl maxActive=100 maxIdle=-1 maxWait=2000 timeBetweenEvictionRunsMillis=-1 minEvictableIdleTimeMillis=1000000 whenExhaustedAction=0 ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryPo oledImpl ConnectionManagerClass=org.apache.ojb.broker.accesslayer.ConnectionManagerIm pl SqlGeneratorClass=org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultI mpl StatementManagerClass=org.apache.ojb.broker.accesslayer.StatementManager StatementsForClassClass=org.apache.ojb.broker.accesslayer.StatementsForClass Impl JdbcAccessClass=org.apache.ojb.broker.accesslayer.JdbcAccessImpl ObjectCacheClass=org.apache.ojb.broker.cache.ObjectCacheEmptyImpl descriptorBasedCaches=false LockManagerClass=org.apache.ojb.odmg.locking.LockManagerDefaultImpl LockMapClass=org.apache.ojb.odmg.locking.InMemoryLockMapImpl LockTimeout=60000 ImplicitLocking=true LockServletUrl=http://127.0.0.1:8080/ojb-lockserver LockAssociations=WRITE LoggerClass=org.apache.ojb.broker.util.logging.Log4jLoggerImpl LoggerConfigFile=log4j.properties ROOT.LogLevel=DEBUG DEFAULT.LogLevel=INFO org.apache.ojb.broker.core.PersistenceBrokerImpl.LogLevel=WARN org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl.LogLevel=DEBU G org.apache.ojb.broker.metadata.RepositoryXmlHandler.LogLevel=WARN org.apache.ojb.broker.metadata.ConnectionDescriptorXmlHandler.LogLevel=WARN org.apache.ojb.broker.accesslayer.JdbcAccessImpl.LogLevel=WARN org.apache.ojb.broker.accesslayer.RsIterator.LogLevel=WARN org.apache.ojb.broker.accesslayer.StatementsForClassImpl.LogLevel=WARN org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl.LogLevel=WARN org.apache.ojb.broker.metadata.RepositoryPersistor.LogLevel=WARN org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.LogLevel=WAR N org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.LogLevel=WARN ODMG.LogLevel=DEBUG JDO.LogLevel=DEBUG performance.LogLevel=INFO soda.LogLevel=WARN ConfigurableFactory.LogLevel=WARN OqlCollectionClass=org.apache.ojb.odmg.collections.DListImpl_2 SqlInLimit=200 DListClass=org.apache.ojb.odmg.collections.DListImpl_2 DArrayClass=org.apache.ojb.odmg.collections.DListImpl_2 DMapClass=org.apache.ojb.odmg.collections.DMapImpl DBagClass=org.apache.ojb.odmg.collections.DBagImpl DSetClass=org.apache.ojb.odmg.collections.DSetImpl PersistentFieldClass=org.apache.ojb.broker.metadata.fieldaccess.PersistentFi eldDirectAccessImpl OJBTxManagerClass=org.apache.ojb.odmg.LocalTxManager JTATransactionManagerClass=org.apache.ojb.odmg.transaction.JBossTransactionM anagerFactory ----- -Stijn ----- Original Message ----- From: "Armin Waibel" <[EMAIL PROTECTED]> To: "OJB Users List" <[EMAIL PROTECTED]> Sent: Wednesday, April 28, 2004 5:14 PM Subject: Re: Update problem using PersistenceBroker api > Hi Stijn, > > do you use OJB default settings (OJB.properties)? > Your test seems ok. > > regards, > Armin > > Stijn de Witt wrote: > > I have created a test program that attempts to load a Candidate from the > > database with lastName="Tester". If none is found it creates a new one. It > > then sets the title field to a random string and stores the object. > > > > On the first run, no candidate is found (as expected) and a new one is > > created and stored correctly. On the second run, the candidate stored before > > is found correctly, and the title is set to a new random string. > > broker.store() is called and finishes with no errors. When I look in the > > database however, the title field is not changed... > > > > What am I doing wrong? > > > > -Stijn > > > > package nl.bergland.codamo; > > > > import java.util.*; > > import org.apache.log4j.LogManager; > > import org.apache.log4j.Logger; > > import org.apache.log4j.PropertyConfigurator; > > import org.apache.ojb.broker.PersistenceBrokerFactory; > > import org.apache.ojb.broker.PersistenceBroker; > > import org.apache.ojb.broker.query.*; > > > > public class OjbTester > > { > > private static final Logger logger = > > LogManager.getLogger(OjbTester.class.getName()); > > /** Creates a new instance of Test */ > > public OjbTester() > > { > > } > > > > public static void main(String[] args) > > { > > PropertyConfigurator.configure("log4j.properties"); > > > > logger.info("main: Starting..."); > > logger.info("main: Getting persistence broker..."); > > PersistenceBroker broker = null; > > try > > { > > broker = PersistenceBrokerFactory.defaultPersistenceBroker(); > > logger.info("main: Creating query criteria..."); > > Criteria crit = new Criteria(); > > logger.info("main: Set criteria lastName==\"Tester\"..."); > > crit.addEqualTo("lastName", "Tester"); > > logger.info("main: Create query..."); > > Query q = QueryFactory.newQuery(Candidate.class, crit); > > logger.info("main: Fire query for a Candidate with lastName == > > \"Tester\"..."); > > Collection results = broker.getCollectionByQuery(q); > > logger.info("main: Get result (if any)..."); > > broker.close(); > > > > broker = PersistenceBrokerFactory.defaultPersistenceBroker(); > > logger.info("main: Starting transaction..."); > > broker.beginTransaction(); > > Iterator it = results.iterator(); > > Candidate candidate; > > if (it.hasNext()) { > > logger.info("main: Found a candidate..."); > > candidate = (Candidate) it.next(); > > } else { > > logger.info("main: No candidate found, create new..."); > > candidate = new Candidate(); > > candidate.setFirstName("Tommy"); > > candidate.setLastName("Tester"); > > } > > > > > > logger.info("main: Assign availableFrom as current Date..."); > > candidate.setAvailableFrom(new java.sql.Date(new > > java.util.Date().getTime())); > > > > logger.info("main: Set random title..."); > > Random rand = new Random(); > > byte[] bytes = new byte[4]; > > rand.nextBytes(bytes); > > String title = new String(); > > for (int i=0; i<bytes.length; i++) > > { > > Byte bt = new Byte(bytes[i]); > > title += bt.toString(); > > } > > > > logger.info("main: Set candidate.title == " + title + "..."); > > candidate.setTitle(title); > > > > logger.info("main: Trying to store candidate..."); > > broker.store(candidate); > > logger.info("main: Stored candidate " + candidate.getId()); > > > > logger.info("main: Commit transaction..."); > > broker.commitTransaction(); > > } > > catch(Exception e) > > { > > if (broker == null) > > logger.error("main: ERROR getting persistence broker: " + > > e.getMessage()); > > else > > { > > logger.error("main: ERROR: " + e.getMessage()); > > if (broker.isInTransaction()) > > { > > logger.error("main: Rollback Transaction..."); > > broker.abortTransaction(); > > } > > } > > } > > finally > > { > > if (broker != null) > > broker.close(); > > } > > > > logger.info("main: Done."); > > } > > } > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
