From: Davis F. <dav...@gm...> - 2008-02-21 17:57:54
|
Hi Mohamed -- I solved the issue. I had changed DatabaseOperation.CLEAN_INSERT.execute() to DatabaseOperation.INSERT.execute() earlier when I was trying to debug a different issue. Moving it back to CLEAN_INSERT removes the duplicates in the ID_GEN table. Regards, Davis On Thu, Feb 21, 2008 at 12:42 PM, Ragab, Mohamed H <moh...@ed...> wrote: > Hi Davis, > > Have you tried including the table ID_GEN in xml dataset for the test, > so that DBUNIT cleans it as well > > Regards, > > Mohamed H. Ragab > > > > > -----Original Message----- > From: dbu...@li... > [mailto:dbu...@li...] On Behalf Of Davis > Ford > Sent: Thursday, February 21, 2008 6:12 PM > To: dbunit-user > Subject: [dbunit-user] Using DbUnit with Hibernate > &javax.persistence.TableGenerator > > Hi, I'm using Hibernate with JPA annotations. For my PK_ID generation, > I'm using TableGenerator -> > > http://java.sun.com/javaee/5/docs/api/javax/persistence/TableGenerator.h > tml > > Here's an example for an entity class name QRule (maps to table QRULE) > -> > > /** The database primary key for this object. */ > @Id > @GeneratedValue(strategy = GenerationType.TABLE, generator = > "qRuleGen") > @TableGenerator(name = "qRuleGen", table = "ID_GEN", pkColumnName = > "GEN_KEY", valueColumnName = "GEN_VALUE", pkColumnValue = "QRULE_ID", > allocationSize = 1) > private long id; > > So, this means there is a table in the database ID_GEN with GEN_KEY = > "QRULE" and GEN_VALUE = (next valid pk_id). > > This makes things tricky for dbunit datasets. I have found that if I > create an XML dataset like this: > > For a particular unit test, I use hibernate's create-drop feature to > export the DDL. This happens only for test setup (i.e. @BeforeClass). > Then for each test method (i.e. @Before), I do CLEAN_INSERT.execute(), > but what ends up happening is that the ID_GEN table is not cleaned -- > and I end up getting duplicates in it. > > Has anyone else run into this, and is there some way around this issue? > > Thanks in advance, > Davis > > ------------------------------------------------------------------------ |