hsqldb不支持列的columnDefinition属性

时间:2012-02-17 14:14:59

标签: java hibernate junit hsqldb hibernate-annotations

我已经有hsql db进行测试,我添加了几个表。

我正确更新了.dtd和.xml文件,但无法运行junits,因为从dbunit测试用例中抛出了“NoSuchTableException”。

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

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

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

我花了很多时间在这上面。问题解决了,但对此有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

因此,如果你有一个特定于数据库的东西,对于你正在使用的另一个数据库,在列定义中,那么显然它将不起作用。

看起来您想在此处定义外键约束。那么为什么不使用OneToOne或ManyToOne关联?