Telosys中@Package注解的预期用途及使用困惑求助
Telosys @Package注解正确使用指引
@Package注解的核心作用是为单个实体指定专属的子包路径,用来拆分不同业务模块的实体类,避免全部堆在同一个根包下。以下是完整的正确用法:
1. 模型中声明@Package
在你的.entity模型文件里,给目标实体添加@Package注解,值为子包名称(支持多级子包,比如"order.dto"):
@Package("order") Entity Order { id : int {PK, AutoIncrement} customerId : int orderDate : LocalDate }
2. 模板文件里的包声明
在Java类模板(比如java-class.vm)中,用${entity.package}变量拼接完整包名,注意必须用大括号包裹变量:
package ${ROOT_PKG}.model.${entity.package}; // 导入语句 import java.time.LocalDate; public class ${entity.name} { // 类字段与方法实现 }
不要用
$entity.package的写法,Telosys模板引擎需要${}来正确解析变量。
3. templates.cfg路径配置
在templates.cfg中,把${entity.package}加入输出路径:
template = java-class.vm target = ${SRC}/${ROOT_PKG}/model/${entity.package}/${entity.name}.java
配置后生成的文件路径会自动替换为src/main/java/com/mycompany/model/order/Order.java,不会保留占位符。
常见问题排查
如果生成路径仍显示${entity.package}占位符,检查两个关键点:
- 实体是否确实添加了@Package注解,没有遗漏;
- 模板和配置文件中的变量是否正确写为
${entity.package},而非$entity.package或其他错误格式。
内容的提问来源于stack exchange,提问作者Michael Ressler
相关产品推荐
相关产品推荐

