【发布时间】:2013-12-16 12:37:10
【问题描述】:
我在集成测试期间使用 DBUnit 来模拟我继承的旧 Spring/Hibernate 项目的数据。不幸的是,很久以前有人认为有一个名为 user 的用户表会很好,这是我们数据库中的保留关键字。 然后通过将实体表映射重命名为“用户”来解决这个问题,它现在已经存在了很长时间。
几年后我现在开始整合集成测试,这带来了一个问题,因为 DBUnit 不允许在它的 xml 数据集文件中使用 ` 字符(你知道它是 XML...),并且 CSV 阅读器需要名为 `user`.csv 的文件在我的操作系统下似乎失败了。
有没有办法在不使用 DBUnit 的 XML 或 CSV 阅读器的情况下添加此表,或者我应该从另一个角度解决这个问题?一种替代方法是,即在集成测试期间使用另一个映射,以便我可以将表命名为它的预期名称(用户)。但我不知道这是否可行。
我已经为此奋斗了 2 天,所以我希望得到一些外部反馈。
所以,只是为了澄清。我有一个实体,例如:
@Entity (name = "`user`")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Auditable
public class User implements UserDetails, Serializable {
properties etc....
在我的集成测试期间,hibernate 负责通过配置 persistence.xml 文件来创建另一个表。 当 dbunit 然后尝试填充数据时,无论我如何尝试转义用户表名称,都会由于缺少表而出现错误。
【问题讨论】:
标签: java hibernate junit integration-testing dbunit