Mysql Shop Demo not working

please report bugs here

Mysql Shop Demo not working

Postby baxter » Fri Apr 30, 2010 3:10 pm

Hi,

I am new to databene and while testing out the shop demo I ran into the following error:

Code: Select all
09:43:06,984 DEBUG (main) [COMMENT] create one default order for each customer based on a DBUnit template
09:43:06,984 DEBUG (main) [COMMENT] create customers
09:43:06,984 INFO  (main) [GenerateOrIterateParser] db_user[type=db_user, nullable=false, count=TypeConvertingExpression[ScriptableLiteral({customer_count}) -> AnyC
09:43:07,187 INFO  (main) [PagedTaskRunner] Running task GenerateAndConsumeEntityTask(db_user) 100 times with page size 1 in a single thread
09:43:07,328 ERROR (main) [GenerateOrIterateStatement] Error in execution of task db_user
java.lang.RuntimeException: Failure in generation of entity 'db_user'
        at org.databene.benerator.composite.MutatingEntityGeneratorProxy.generate(MutatingEntityGeneratorProxy.java:117)
        at org.databene.benerator.composite.MutatingEntityGeneratorProxy.generate(MutatingEntityGeneratorProxy.java:47)
        at org.databene.benerator.composite.ConfiguredEntityGenerator.generate(ConfiguredEntityGenerator.java:91)
        at org.databene.benerator.composite.ConfiguredEntityGenerator.generate(ConfiguredEntityGenerator.java:47)
        at org.databene.benerator.engine.statement.GenerateAndConsumeEntityTask.execute(GenerateAndConsumeEntityTask.java:112)
        at org.databene.task.TaskProxy.execute(TaskProxy.java:57)
        at org.databene.task.StateTrackingTaskProxy.execute(StateTrackingTaskProxy.java:52)
        at org.databene.task.runner.SingleThreadedTaskRunner.runWithoutPage(SingleThreadedTaskRunner.java:58)
        at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:49)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:138)
        at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:171)
        at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:90)
        at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:57)
        at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:42)
        at org.databene.benerator.engine.statement.TimedEntityStatement.execute(TimedEntityStatement.java:57)
        at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:47)
        at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:122)
        at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:94)
        at org.databene.benerator.main.Benerator.main(Benerator.java:65)
Caused by: java.lang.UnsupportedOperationException: Sequence not supported in MySQL
        at org.databene.platform.db.DatabaseDialect.checkSequenceSupport(DatabaseDialect.java:205)
        at org.databene.platform.db.DatabaseDialect.renderFetchSequenceValue(DatabaseDialect.java:92)
        at org.databene.platform.db.DBSystem.nextSequenceValue(DBSystem.java:389)
        at org.databene.platform.db.DBSequenceGenerator.generate(DBSequenceGenerator.java:74)
        at org.databene.platform.db.DBSequenceGenerator.generate(DBSequenceGenerator.java:39)
        at org.databene.benerator.primitive.HiLoGenerator.generate(HiLoGenerator.java:112)
        at org.databene.benerator.primitive.HiLoGenerator.generate(HiLoGenerator.java:42)
        at org.databene.benerator.wrapper.GeneratorProxy.generate(GeneratorProxy.java:58)
        at org.databene.benerator.nullable.NullInjectingGeneratorProxy.generate(NullInjectingGeneratorProxy.java:77)
        at org.databene.benerator.composite.PlainComponentBuilder.buildComponentFor(PlainComponentBuilder.java:68)
        at org.databene.benerator.composite.MutatingEntityGeneratorProxy.generate(MutatingEntityGeneratorProxy.java:110)
        ... 18 more
09:43:07,359 ERROR (main) [GenerateOrIterateStatement] Error in execution of task GenerateAndConsumeEntityTask
java.lang.RuntimeException: java.lang.RuntimeException: Failure in generation of entity 'db_user'
        at org.databene.commons.ErrorHandler.handleError(ErrorHandler.java:91)
        at org.databene.benerator.engine.statement.GenerateAndConsumeEntityTask.execute(GenerateAndConsumeEntityTask.java:129)
        at org.databene.task.TaskProxy.execute(TaskProxy.java:57)
        at org.databene.task.StateTrackingTaskProxy.execute(StateTrackingTaskProxy.java:52)
        at org.databene.task.runner.SingleThreadedTaskRunner.runWithoutPage(SingleThreadedTaskRunner.java:58)
        at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:49)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:138)
        at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:171)
        at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:90)
        at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:57)
        at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:42)
        at org.databene.benerator.engine.statement.TimedEntityStatement.execute(TimedEntityStatement.java:57)
        at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:47)
        at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:122)
        at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:94)
        at org.databene.benerator.main.Benerator.main(Benerator.java:65)
Caused by: java.lang.RuntimeException: Failure in generation of entity 'db_user'
        at org.databene.benerator.composite.MutatingEntityGeneratorProxy.generate(MutatingEntityGeneratorProxy.java:117)
        at org.databene.benerator.composite.MutatingEntityGeneratorProxy.generate(MutatingEntityGeneratorProxy.java:47)
        at org.databene.benerator.composite.ConfiguredEntityGenerator.generate(ConfiguredEntityGenerator.java:91)
        at org.databene.benerator.composite.ConfiguredEntityGenerator.generate(ConfiguredEntityGenerator.java:47)
        at org.databene.benerator.engine.statement.GenerateAndConsumeEntityTask.execute(GenerateAndConsumeEntityTask.java:112)
        ... 14 more
Caused by: java.lang.UnsupportedOperationException: Sequence not supported in MySQL
        at org.databene.platform.db.DatabaseDialect.checkSequenceSupport(DatabaseDialect.java:205)
        at org.databene.platform.db.DatabaseDialect.renderFetchSequenceValue(DatabaseDialect.java:92)
        at org.databene.platform.db.DBSystem.nextSequenceValue(DBSystem.java:389)
        at org.databene.platform.db.DBSequenceGenerator.generate(DBSequenceGenerator.java:74)
        at org.databene.platform.db.DBSequenceGenerator.generate(DBSequenceGenerator.java:39)
        at org.databene.benerator.primitive.HiLoGenerator.generate(HiLoGenerator.java:112)
        at org.databene.benerator.primitive.HiLoGenerator.generate(HiLoGenerator.java:42)
        at org.databene.benerator.wrapper.GeneratorProxy.generate(GeneratorProxy.java:58)
        at org.databene.benerator.nullable.NullInjectingGeneratorProxy.generate(NullInjectingGeneratorProxy.java:77)
        at org.databene.benerator.composite.PlainComponentBuilder.buildComponentFor(PlainComponentBuilder.java:68)
        at org.databene.benerator.composite.MutatingEntityGeneratorProxy.generate(MutatingEntityGeneratorProxy.java:110)
        ... 18 more
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: Failure in generation of entity 'db_user'
        at org.databene.commons.ErrorHandler.handleError(ErrorHandler.java:91)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:147)
        at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:171)
        at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:90)
        at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:57)
        at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:42)
        at org.databene.benerator.engine.statement.TimedEntityStatement.execute(TimedEntityStatement.java:57)
        at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:47)
        at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:122)
        at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:94)
        at org.databene.benerator.main.Benerator.main(Benerator.java:65)
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Failure in generation of entity 'db_user'
        at org.databene.commons.ErrorHandler.handleError(ErrorHandler.java:91)
        at org.databene.benerator.engine.statement.GenerateAndConsumeEntityTask.execute(GenerateAndConsumeEntityTask.java:129)
        at org.databene.task.TaskProxy.execute(TaskProxy.java:57)
        at org.databene.task.StateTrackingTaskProxy.execute(StateTrackingTaskProxy.java:52)
        at org.databene.task.runner.SingleThreadedTaskRunner.runWithoutPage(SingleThreadedTaskRunner.java:58)
        at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:49)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:138)
        ... 9 more
Caused by: java.lang.RuntimeException: Failure in generation of entity 'db_user'
        at org.databene.benerator.composite.MutatingEntityGeneratorProxy.generate(MutatingEntityGeneratorProxy.java:117)
        at org.databene.benerator.composite.MutatingEntityGeneratorProxy.generate(MutatingEntityGeneratorProxy.java:47)
        at org.databene.benerator.composite.ConfiguredEntityGenerator.generate(ConfiguredEntityGenerator.java:91)
        at org.databene.benerator.composite.ConfiguredEntityGenerator.generate(ConfiguredEntityGenerator.java:47)
        at org.databene.benerator.engine.statement.GenerateAndConsumeEntityTask.execute(GenerateAndConsumeEntityTask.java:112)
        ... 14 more
Caused by: java.lang.UnsupportedOperationException: Sequence not supported in MySQL
        at org.databene.platform.db.DatabaseDialect.checkSequenceSupport(DatabaseDialect.java:205)
        at org.databene.platform.db.DatabaseDialect.renderFetchSequenceValue(DatabaseDialect.java:92)
        at org.databene.platform.db.DBSystem.nextSequenceValue(DBSystem.java:389)
        at org.databene.platform.db.DBSequenceGenerator.generate(DBSequenceGenerator.java:74)
        at org.databene.platform.db.DBSequenceGenerator.generate(DBSequenceGenerator.java:39)
        at org.databene.benerator.primitive.HiLoGenerator.generate(HiLoGenerator.java:112)
        at org.databene.benerator.primitive.HiLoGenerator.generate(HiLoGenerator.java:42)
        at org.databene.benerator.wrapper.GeneratorProxy.generate(GeneratorProxy.java:58)
        at org.databene.benerator.nullable.NullInjectingGeneratorProxy.generate(NullInjectingGeneratorProxy.java:77)
        at org.databene.benerator.composite.PlainComponentBuilder.buildComponentFor(PlainComponentBuilder.java:68)
        at org.databene.benerator.composite.MutatingEntityGeneratorProxy.generate(MutatingEntityGeneratorProxy.java:110)
        ... 18 more
09:43:07,453 INFO  (Thread-1) [BeneratorShutdownHook] Shutdown down Benerator...


OS: Win xp sp3
DB: mysql

I should mention it does insert 4 records to the user database before the error occurs.

If I remove the db_user part the same error occurs on the orders table, using the latest version 0.6.0

Thanks for your help

Jay
baxter
 
Posts: 2
Joined: Fri Apr 30, 2010 2:47 pm

Re: Mysql Shop Demo not working

Postby Volker Bergmann » Fri Apr 30, 2010 3:43 pm

Oops, I improved the demos but forgot that MySQL does not support sequences.

But you can make the shop demo run on MySQL easily by replacing the line

Code: Select all
   <bean id="idGen" spec="new DBSeqHiLoGenerator('seq_id_gen', 100, db)" />


with:

Code: Select all
   <bean id="idGen" class="IncrementGenerator" />


Regards,
Volker 'databene' Bergmann

Need faster response times? phone support? onsite support? training? custom extensions? immediate bug fixes? Support Benerator evolution by buying services from Volker Bergmann!
User avatar
Volker Bergmann
 
Posts: 654
Joined: Sat Nov 10, 2007 2:40 pm

Re: Mysql Shop Demo not working

Postby baxter » Fri Apr 30, 2010 3:59 pm

Thanks, I replaced the line as described and received the following error:

Code: Select all
10:57:36,109 DEBUG (main) [COMMENT] create one default order for each customer based on a DBUnit template
10:57:36,109 DEBUG (main) [COMMENT] create customers
10:57:36,125 INFO  (main) [GenerateOrIterateParser] db_user[type=db_user, nullable=false, count=TypeConvertingExpression[ScriptableLiteral({customer_count}) -> AnyConverter(Long)
10:57:36,312 INFO  (main) [PagedTaskRunner] Running task GenerateAndConsumeEntityTask(db_user) 5000 times with page size 1000 in a single thread
10:57:36,390 ERROR (main) [GenerateOrIterateStatement] Error in execution of task db_user
java.lang.RuntimeException: Error in persisting db_user[id=1, name=Alexandre Chan, email=logan_gagnon@ubjkavwf.com, password=Y4Kcs9rGmUqw, role_id=customer, active=1]
        at org.databene.platform.db.DBSystem.persistOrUpdate(DBSystem.java:698)
        at org.databene.platform.db.DBSystem.store(DBSystem.java:284)
        at org.databene.model.storage.StorageSystemConsumer.startConsuming(StorageSystemConsumer.java:51)
        at org.databene.model.storage.StorageSystemConsumer.startConsuming(StorageSystemConsumer.java:39)
        at org.databene.model.consumer.ConsumerChain.startConsuming(ConsumerChain.java:74)
        at org.databene.benerator.engine.statement.GenerateAndConsumeEntityTask.execute(GenerateAndConsumeEntityTask.java:121)
        at org.databene.task.TaskProxy.execute(TaskProxy.java:57)
        at org.databene.task.StateTrackingTaskProxy.execute(StateTrackingTaskProxy.java:52)
        at org.databene.task.runner.SingleThreadedTaskRunner.runWithoutPage(SingleThreadedTaskRunner.java:58)
        at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:49)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:138)
        at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:171)
        at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:90)
        at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:57)
        at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:42)
        at org.databene.benerator.engine.statement.TimedEntityStatement.execute(TimedEntityStatement.java:57)
        at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:47)
        at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:122)
        at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:94)
        at org.databene.benerator.main.Benerator.main(Benerator.java:65)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.Util.getInstance(Util.java:381)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
        at org.databene.platform.db.DBSystem.persistOrUpdate(DBSystem.java:696)
        ... 19 more
10:57:36,437 ERROR (main) [GenerateOrIterateStatement] Error in execution of task GenerateAndConsumeEntityTask
java.lang.RuntimeException: java.lang.RuntimeException: Error in persisting db_user[id=1, name=Alexandre Chan, email=logan_gagnon@ubjkavwf.com, password=Y4Kcs9rGmUqw, role_id=cus
        at org.databene.commons.ErrorHandler.handleError(ErrorHandler.java:91)
        at org.databene.benerator.engine.statement.GenerateAndConsumeEntityTask.execute(GenerateAndConsumeEntityTask.java:129)
        at org.databene.task.TaskProxy.execute(TaskProxy.java:57)
        at org.databene.task.StateTrackingTaskProxy.execute(StateTrackingTaskProxy.java:52)
        at org.databene.task.runner.SingleThreadedTaskRunner.runWithoutPage(SingleThreadedTaskRunner.java:58)
        at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:49)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:138)
        at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:171)
        at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:90)
        at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:57)
        at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:42)
        at org.databene.benerator.engine.statement.TimedEntityStatement.execute(TimedEntityStatement.java:57)
        at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:47)
        at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:122)
        at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:94)
        at org.databene.benerator.main.Benerator.main(Benerator.java:65)
Caused by: java.lang.RuntimeException: Error in persisting db_user[id=1, name=Alexandre Chan, email=logan_gagnon@ubjkavwf.com, password=Y4Kcs9rGmUqw, role_id=customer, active=1]
        at org.databene.platform.db.DBSystem.persistOrUpdate(DBSystem.java:698)
        at org.databene.platform.db.DBSystem.store(DBSystem.java:284)
        at org.databene.model.storage.StorageSystemConsumer.startConsuming(StorageSystemConsumer.java:51)
        at org.databene.model.storage.StorageSystemConsumer.startConsuming(StorageSystemConsumer.java:39)
        at org.databene.model.consumer.ConsumerChain.startConsuming(ConsumerChain.java:74)
        at org.databene.benerator.engine.statement.GenerateAndConsumeEntityTask.execute(GenerateAndConsumeEntityTask.java:121)
        ... 14 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.Util.getInstance(Util.java:381)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
        at org.databene.platform.db.DBSystem.persistOrUpdate(DBSystem.java:696)
        ... 19 more
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: Error in persisting db_user[id=1, name=Alexandre Chan, email=logan_
        at org.databene.commons.ErrorHandler.handleError(ErrorHandler.java:91)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:147)
        at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:171)
        at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:90)
        at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:57)
        at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:42)
        at org.databene.benerator.engine.statement.TimedEntityStatement.execute(TimedEntityStatement.java:57)
        at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:47)
        at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:122)
        at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:94)
        at org.databene.benerator.main.Benerator.main(Benerator.java:65)
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Error in persisting db_user[id=1, name=Alexandre Chan, email=logan_gagnon@ubjkavwf.com, password=Y4Kcs9rGmUqw,
        at org.databene.commons.ErrorHandler.handleError(ErrorHandler.java:91)
        at org.databene.benerator.engine.statement.GenerateAndConsumeEntityTask.execute(GenerateAndConsumeEntityTask.java:129)
        at org.databene.task.TaskProxy.execute(TaskProxy.java:57)
        at org.databene.task.StateTrackingTaskProxy.execute(StateTrackingTaskProxy.java:52)
        at org.databene.task.runner.SingleThreadedTaskRunner.runWithoutPage(SingleThreadedTaskRunner.java:58)
        at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:49)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:138)
        ... 9 more
Caused by: java.lang.RuntimeException: Error in persisting db_user[id=1, name=Alexandre Chan, email=logan_gagnon@ubjkavwf.com, password=Y4Kcs9rGmUqw, role_id=customer, active=1]
        at org.databene.platform.db.DBSystem.persistOrUpdate(DBSystem.java:698)
        at org.databene.platform.db.DBSystem.store(DBSystem.java:284)
        at org.databene.model.storage.StorageSystemConsumer.startConsuming(StorageSystemConsumer.java:51)
        at org.databene.model.storage.StorageSystemConsumer.startConsuming(StorageSystemConsumer.java:39)
        at org.databene.model.consumer.ConsumerChain.startConsuming(ConsumerChain.java:74)
        at org.databene.benerator.engine.statement.GenerateAndConsumeEntityTask.execute(GenerateAndConsumeEntityTask.java:121)
        ... 14 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.Util.getInstance(Util.java:381)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
        at org.databene.platform.db.DBSystem.persistOrUpdate(DBSystem.java:696)
        ... 19 more
10:57:36,562 INFO  (Thread-1) [BeneratorShutdownHook] Shutdown down Benerator...


here is the shop.ben.xml file

Code: Select all
<?xml version="1.0" encoding="iso-8859-1"?>
<setup
   xmlns="http://databene.org/benerator/0.6.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://databene.org/benerator/0.6.0 http://databene.org/benerator-0.6.0.xsd">

   <comment>
       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
       !   Demonstration file for populating the shop database.    !
       !                                                           !
       !   You can choose a database and a stage like this:        !
       !       -Dstage=development -Ddatabase=oracle               !
       !                                                           !
       !   These database types are provided:                      !
       !       oracle, db2, sql_server, mysql, postgres, hsql,     !
       !       hsqlmem, mysql, firebird, derby, h2                 !
       !                                                           !
       !   ...and these stage configurations:                      !
       !       development, perftest                               !
       !                                                           !
       !   Set up your database connection in the file             !
       !       &lt;database&gt;/shop.&lt;database&gt;.properties   !
       !                                                           !
       !   You may want to try different generation quantities in  !
       !       shop.&lt;stage&gt;.properties                       !
       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
   </comment>
   
   <import defaults  = "true"
         domains   = "person,net,product"
         platforms = "db"/>

   <comment>setting default values</comment>
   <property name="dbSchema"   value="shop" />
   <property name="dbPassword" value="" />
   <property name="dbBatch"    value="false" />
   
   <if test="benerator.get('stage') == null">
      <comment>no stage specified, using 'development'</comment>
      <execute>stage = 'development'</execute>
   </if>

   <if test="benerator.get('database') == null">
      <comment>no database specified, using 'hsqlmem'</comment>
      <execute>database = 'hsqlmem'</execute>
   </if>

   <comment>import stage and database specific properties</comment>
   <include uri="{ftl:${database}/shop.${database}.properties}" />
   <include uri="{ftl:shop.${stage}.properties}" />

   <comment>log the settings to the console</comment>
   <echo message="Starting generation for" />
   <echo message="{ftl:  ${product_count + 6} products}" />
   <echo message="{ftl:  ${customer_count + 1} customers}" />
   <echo message="{ftl:  ${orders_per_customer} orders per customer}" />
   <echo message="{ftl:  ${items_per_order} items per order}" />
   <echo message="{ftl:Setup: ${benerator.defaultEncoding} def.pageSize=${benerator.defaultPageSize} def.script=${benerator.defaultScript}}" />
   <echo message="{ftl:JDBC URL: ${dbUrl}}" />

    <comment>define a database that will be referred by the id 'db' later</comment>
    <database id="db" url="{dbUrl}" driver="{dbDriver}" schema="{dbSchema}"
        user="{dbUser}" password="{dbPassword}" batch="{dbBatch}" />

   <comment>drop the current tables/sequences if they exist and recreate them</comment>
   <execute uri="{ftl:${database}/drop_tables.${database}.sql}"   target="db" onError="ignore" />
   <execute uri="{ftl:${database}/create_tables.${database}.sql}" target="db" />
   
   <bean id="idGen" class="IncrementGenerator" />

   <comment>Creating a valid base data set for regression testing by importing a DbUnit file</comment>
   <iterate source="shop.dbunit.xml" consumer="db" />

   <comment>Importing some more predefined products from a CSV file</comment>
   <iterate source="products.import.csv" type="db_product" encoding="utf-8" consumer="db" />

   <comment>You could import them from a flat file as well, e.g.
      iterate name="db_product" source="products.import.flat"
         pattern="ean_code[13],name[30],category_id[9],price[8r0],manufacturer[30]" consumer="db" /</comment>

   <comment>
      Creating products of random attributes &amp; category and exporting them to
      the database as well as to a flat file
   </comment>
   <generate type="db_product" count="{product_count}" consumer="db">
      <id name="ean_code" generator="new EANGenerator(true)" />
      <reference name="category_id" targetType="db_category" source="db" distribution="random" />
      <attribute name="price" type="big_decimal" min="0.49" max="99.99" precision="0.10" distribution="cumulated" />
      <!-- Export the generated products not only to the database, but also to a flat file -->
      <consumer class="FlatFileEntityExporter">
         <property name="uri" value="products.flat" />
         <property name="columns" value="ean_code[13],name[30l],price[10.2r0]" />
      </consumer>
   </generate>

   <comment>create one default order for each customer based on a DBUnit template</comment>
   <!-- generate name="db_order" consumer="db">
      <id name="id" generator="idGen" />
      <attribute name="customer_id" source="db" selector="select id from db_customer" />
      <iterate source="default_order.dbunit.xml" type="db_order_item" consumer="db">
           <id name="id" generator="idGen" />
      </generate>
   </generate-->

    <comment>create customers</comment>
    <generate type="db_user" count="{customer_count}" consumer="db">
        <variable name="person" generator="PersonGenerator" dataset="{country}" locale="{locale}"/>
        <id name="id" generator="idGen" />
        <attribute name="name" script="person.givenName + ' ' + person.familyName" />
        <attribute name="email" generator="EMailAddressGenerator" />
        <attribute name="password" pattern="[A-Za-z0-9]{8,12}" />
        <reference name="role_id" constant="customer" />
        <generate type="db_customer" count="1" consumer="db">
            <id name="id" script="db_user.id" />
            <attribute name="category" values="'A','B','C'" />
            <attribute name="salutation" script="person.salutation" />
            <attribute name="first_name" script="person.givenName" />
            <attribute name="last_name" script="person.familyName" />
            <attribute name="birth_date" nullable="false" />
            <!-- Export the customers not only to the database, but their names and passwords to a CSV file -->
            <consumer class="CSVEntityExporter">
                <property name="uri" value="customers.csv" />
                <property name="columns" value="id,password" />
            </consumer>
        </generate>
    </generate>

   <comment>create orders for random customers and random products</comment>
   <generate type="db_order" count="{customer_count * orders_per_customer}" consumer="db">
        <id name="id" generator="idGen" />
      <reference name="customer_id" source="db" targetType="db_customer" cyclic="true" />
        <attribute name="total_price" constant="0" />
   </generate>

   <comment>create order items</comment>
   <generate type="db_order_item"
         count="{customer_count * orders_per_customer * items_per_order}" consumer="db">
      <variable name="product" source="db" selector="select ean_code, price from db_product" distribution="cumulated" />
        <id name="id" generator="idGen" />
      <attribute name="number_of_items" min="1" max="27" distribution="cumulated" />
      <reference name="order_id" source="db" selector="select id from db_order where id &gt; 1" cyclic="true" />
      <reference name="product_ean_code" script="product[0]" />
      <attribute name="total_price" script="product[1] * db_order_item.number_of_items" />
   </generate>

    <comment>fix order data</comment>
    <iterate source="db" type="db_order" consumer="db.updater()">
        <attribute name="total_price" source="db"
            selector="{{ftl:select sum(total_price) from db_order_item where order_id = ${db_order.id}}}"
            cyclic="true"/>
    </iterate>

</setup>
baxter
 
Posts: 2
Joined: Fri Apr 30, 2010 2:47 pm

Re: Mysql Shop Demo not working

Postby Volker Bergmann » Fri Apr 30, 2010 4:23 pm

OK, I remember. Sorry that the last reply was incomplete. If you look at the file create_tables.mysql.sql, you will notice that the id columns of db_user, db_order and db_order_item are set to auto_increment. The easiest workaround for the problem would be to remove these auto_increments.

Regards,
Volker 'databene' Bergmann

Need faster response times? phone support? onsite support? training? custom extensions? immediate bug fixes? Support Benerator evolution by buying services from Volker Bergmann!
User avatar
Volker Bergmann
 
Posts: 654
Joined: Sat Nov 10, 2007 2:40 pm

Re: Mysql Shop Demo not working

Postby Volker Bergmann » Thu May 06, 2010 2:28 pm

Hi Jay,

I checked and fixed the demo files. shop.ben.xml now works correctly with MySQL.

Regards,
Volker 'databene' Bergmann

Need faster response times? phone support? onsite support? training? custom extensions? immediate bug fixes? Support Benerator evolution by buying services from Volker Bergmann!
User avatar
Volker Bergmann
 
Posts: 654
Joined: Sat Nov 10, 2007 2:40 pm


Return to Benerator Bugs

Who is online

Users browsing this forum: Google [Bot] and 2 guests

cron