JDO Class - 根据 MySQL 或 MSSQL 转换为 varchar 或 nvarchar

JDO Class - convert to varchar or nvarchar based on MySQL or MSSQL

我有一个 JDO Class。部分属性如下图:

@Column(jdbcType = "VARCHAR", length = 200)
String anotherSrcFieldValue;

@Column(jdbcType = "BIGINT")
long tgtFieldId;

@Column(jdbcType = "VARCHAR", length = 200)
String tgtFieldValue;

使用 MySQL 和 MSSQL,它工作正常。

我的要求是,如果是MySQL就让它成为VARCHAR类型的列;当它是 MSSQL 时,创建一个 NVARCHAR 类型的列。我怎样才能做到这一点?

第二个要求是一个实体 class 在两个数据库上都是 运行。

我见过的所有 JDO 文档都清楚地解释了将模式特定信息放在注释中是个坏主意。因此,您应该有 2 个文件“package-mysql.orm”和“package-mssql.orm”来指定 schema-specific 映射的部分,并将“datanucleus.Mapping”设置为“mysql”或“mssql” " 取决于您的数据存储。根据 http://www.datanucleus.org/products/accessplatform_4_2/jdo/orm/metadata_orm.html