【问题标题】:hsqldb not supporting columnDefinition attribute for the columnhsqldb 不支持列的 columnDefinition 属性
【发布时间】:2012-02-17 14:14:58
【问题描述】:

我已经有 hsql db 用于测试,并添加了几个表。

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

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

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

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

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

【问题讨论】:

    标签: java hibernate junit hsqldb hibernate-annotations


    【解决方案1】:

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

    因此,如果您在列定义中具有特定于数据库的内容,对于另一个数据库而不是您正在使用的数据库,那么显然它不会工作。

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

    【讨论】:

    • 我想避免代码中的那个约束(因为某种原因),我只是想在这里有一个定义,并在表本身上有一个约束。它在 devo/prod 中运行良好,但 junits 失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 2023-04-03
    • 1970-01-01
    • 2021-07-15
    相关资源
    最近更新 更多