【发布时间】:2012-10-17 13:35:11
【问题描述】:
我正在使用嵌入式 Apache Derby 数据库进行 JUnit 测试。我有一些 JPA 实体。有些实体包含这样的列:
@Column(nullable = false)
private String rawResults;
这一切都适用于嵌入式 Derby,直到我厌倦了在 openjpa-maven-plugin 生成的查询中将 TEXT 替换为 LONGTEXT,所以我制作了这样的列:
@Column(nullable = false, columnDefinition = "LONGTEXT")
private String rawResults;
现在openjpa-maven-plugin 正在生成LONGTEXT 而不是TEXT。但这仅在我跳过测试时有效。
然后我运行我的测试并进行了 Derby,所以一切都失败了,并出现如下错误:
org.apache.openjpa.lib.jdbc.ReportingSQLException: TYPE 'LONGTEXT' does not exist. {stmnt 23146419 CREATE TABLE Assessment -- Assessment_JpaImpl
我使用的是 Derby 10.9.1.0,据我了解,它不支持 columnDefinition = "LONGTEXT"。这是正确的吗?还是我需要设置一些配置让 derby 支持这个属性?
【问题讨论】:
-
您确实意识到“columnDefinition”将完全特定于一个 RDBMS?所以你抛弃了便携性。