2012-02-17 86 views
0

我已经有了hsql数据库进行测试,并且我添加了几个表。hsqldb不支持columnDefinition属性的列

我正确地更新.dtd和.xml文件,但无法为“NoSuchTableException”正在从DbUnit的测试用例抛出运行junits。

在DAO类中,我为罪魁祸首表添加了以下属性。

@Column(name = "keyword_id", columnDefinition = "int REFERENCES master_keyword(keyword_id)") 

一旦我删除columnDefinition属性,junit工作正常。我明白columnDefinition是特定于数据库的,这是否意味着,我们不应该在运行junits时使用它?

我在这花了很多时间。问题已解决,但有关于此的任何想法?

回答

1

如果你的单元测试使用注释来自动创建数据库表,那么显然columnDefinition属性是考虑到:这是它的目的。

所以,如果你有数据库特定的东西,对于其他数据库比您正在使用的一个,在列的定义,那显然是行不通的。

看起来你想在这里定义一个外键约束。那你为什么不使用OneToOne或ManyToOne关联?

+0

我想避免从代码的约束(因为一个原因),我只是想在这里有一个定义,并在表本身的约束。 它可以在devo/prod中正常工作,但是联合失败。 – instanceOfObject 2012-02-17 14:45:17