首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用Telosys中的Dsl模型生成具有链接的问题实体

利用Telosys中的Dsl模型生成具有链接的问题实体
EN

Stack Overflow用户
提问于 2020-12-22 23:41:09
回答 1查看 220关注 0票数 1

我试图使用Telosys中的dsl模型生成JPA加密器。

我的Dsl模型:

代码语言:javascript
复制
Car {​​​​​
id : int {​​​​​ @Id, @AutoIncremented }​​​​​;
user : Employee;
}​​​​​
    
Employee {​​​​​
id : long {​​​​​ @Id }​​​​​ ;
name : string ;
cars : Car[] ;
}​​​​​

我正在使用以下代码:

代码语言:javascript
复制
    $jpa.linkAnnotations(4, $link, $entity.nonKeyAttributes)
    private ${link.fieldType} $link.fieldName ;
#end

我总是有这样的结果:

代码语言:javascript
复制
    @OneToMany(mappedBy="null", targetEntity=Car.class)
    private List<Car> cars ;
    
    @ManyToOne
    private Employee user ;

我的问题是,我总是得到mappedBy="null",如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-04 21:38:31

这是一个错误,发生在"DSL模型“中的”反向“类型链接的情况下。这个问题是由于DSL模型中缺少外键定义造成的。Foreign已被添加到新的DSL模型语法中,并将在Telosys的下一个版本中使用(即将开始)。

"$jpa“对象提供了一组函数,用作编写快捷方式,因此在此同时,您还可以创建一个用自己的代码替换"linkAnnotations”函数的速度宏(纯速度语言)。

例如,一个名为"jpaLinkAnnot“的宏:

  1. 速度宏定义(有一个参数"$link") :

代码语言:javascript
复制
#macro( jpaLinkAnnot $link)
#if ( $link.isOwningSide() )
    // Owning Side 
$jpa.linkAnnotations(4, $link, $entity.nonKeyAttributes)
#else
    // Inverse Side
#if ( $link.isCardinalityOneToMany() ) 
    @OneToMany(targetEntity=${link.targetEntity.name}.class )
#else 
$jpa.linkAnnotations(4, $link, $entity.nonKeyAttributes)
#end
#end
#end

  1. 速度宏用法:

代码语言:javascript
复制
#foreach( $link in $entity.selectedLinks )
## Macro below replaces '$jpa.linkAnnotations(...)'
#jpaLinkAnnot($link)
    private ${link.formattedFieldType(10)} $link.formattedFieldName(12) ;

#end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65417266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档