首页 > 解决方案 > Telosys 不生成列定义(即用于 CHAR 列)

问题描述

当使用 Telosys 使用 java7-persistence-commons-jpa-T300 模板生成实体时,列注释在 JpaRecord 类中生成 @Column 注释时从不包含 columnDefinition。这会强制使用 hbm2ddl 生成数据库模式始终生成 VARCHAR 列。但是当原始数据库列是 CHAR 列时,生成的记录类也应该生成 columnDefinition... 即:@Column( columnDefinition = "CHAR(xx)" , name = "VVT_NR", nullable = false, length = 20 )

有没有办法强制 telosys 生成 columnDefinition (当然,xx 的长度正确)?

标签: telosys

解决方案


上述模板中使用的 JPA 函数“$ jpa.fieldAnnotations ()”是为给定字段生成“经典”JPA 注释的快捷方式,实际上它不会生成所有“@Column”可选元素(例如“ table”、“insertable”、“updatable”和“columnDefinition”不生成)

在版本 3 中,无法强制生成器生成“columnDefinition”。

但是如果你真的想生成“columnDefinition”,你可以创建一个特定的函数或一个特定的宏。

要创建Velocity 宏,请参见:

要创建特定功能,请参阅另一个问题:

对于特定功能,您可以重用“$jpa”类源代码:


推荐阅读