DBUnit问题?hibernate-tools hbm2ddl问题?

DBUnit问题

在父子关系的表(表中一个字段外键关联到本身)中,使用DBUnit清除其中数据时出错。如menu表中有一个parent_id外键关联到 menu的主键,这时我们通过sql "delete from menu"也是会出错的(如果表中存在相互关联的数据),使用DBUnit来清除数据也会出错。

DBUnit应该有这个问题的解决方案。待解决。

hibernate-tools hbm2ddl问题

同时发现,使用hibernate-tools提供的hbm2ddl生成的数据库表中,没有外键关联!(生成的ddl文件中有外键相关信息,但由这 个命令来创建的数据库表与通过这个ddl文件生成的数据库表不一致,表现在通过命令生成的数据库表没有外键!)这将导致我们的单元测试可能存在bug。 如,删除一个角色时应先断开该角色与用户的关联,然后再删除;如果库表中没有外键限制,就可以直接删除角色;这样我们的RoleManager里的 remove方法直接删除角色,就可以通过单元测试,而事实上这个逻辑是错误的,我们实际部署时自己创建数据库表(有外键),这个方法就会抛异常。

先记录这个问题,以后跟进。

你可能感兴趣的:(sql,Hibernate,单元测试)