dbUnit - 如何定义不存在主键的位置,以使用表的所有列

时间:2013-07-08 20:02:54

标签: java hibernate dbunit

我在使用dbUnit的org.dbunit.dataset.NoPrimaryKeyException时遇到了困难。我有一个课程,比如A,它有Set<B>属性,其中Benum。我使用Hibernate的hbm2ddl工具生成我的数据库模式,然后使用dbUnit填充我的数据库,以便进行DAO单元测试。

我正在尝试使用dbUnit xml填充我的数据库,但是当dbUnit尝试删除我为表org.dbunit.dataset.NoPrimaryKeyException定义的条目时(我已经自动),我得到A_B由Hibernate生成)

我已经看过以下问题提出的解决方案: Using DbUnit with tables which do not have primary keys,但这需要我:

  • 为每个类定义一个id作为主键(我已经定义了主键,不一定是数字);或
  • 准确指定accept方法中哪些类使用哪些主键。

有没有办法可以指定应该使用默认主键,除非没有,在这种情况下我们应该使用表中的所有列?

(顺便说一句,我使用Hibernate和JPA注释使用与http://appfuse.org/display/APF/Java+5+Enums+Persistence+with+Hibernate中描述的方法类似的方法来保持枚举

0 个答案:

没有答案