我对 dbUnit 的org.dbunit.dataset.NoPrimaryKeyException
. 我有一个类,比方说A
,它有一个Set<B>
属性,在B
哪里enum
。我使用 Hibernate 的hbm2ddl
工具来生成我的数据库模式,然后使用它dbUnit
来填充我的数据库,为 DAO 单元测试做好准备。
我正在尝试使用 dbUnit xml 填充我的数据库,但是org.dbunit.dataset.NoPrimaryKeyException
当 dbUnit 尝试删除我为表定义的条目A_B
(由 Hibernate 自动生成)时,我得到了一个
我已经查看了针对以下问题提出的解决方案: Using DbUnit with tables which do not have primary keys,但这需要我:
- 为每个类定义
id
一个主键(我已经定义了不一定是数字的主键);或者 - 准确指定方法中的哪些类使用哪些主键
accept
。
有什么方法可以指定应该使用默认主键,除非没有,在这种情况下我们应该使用表中的所有列?
(顺便说一句,我使用与http://appfuse.org/display/APF/Java+5+Enums+Persistence+with+Hibernate中描述的方法类似的方法使用 Hibernate 和 JPA 注释来持久化枚举)