Java 在Telosys中使用Dsl模型生成具有链接的实体时出现问题

Java 在Telosys中使用Dsl模型生成具有链接的实体时出现问题,java,spring-boot,jpa,telosys,Java,Spring Boot,Jpa,Telosys,我正在尝试使用Telosys中的dsl模型生成JPA版本 我的Dsl型号: Car {​​​​​ id : int {​​​​​ @Id, @AutoIncremented }​​​​​; user : Employee; }​​​​​ Employee {​​​​​ id : long {​​​​​ @Id }​​​​​ ; name : string ; cars : Car[] ; }​​​​​ 我正在使用这个代码: $jpa.linkAnnotations(4, $l

我正在尝试使用Telosys中的dsl模型生成JPA版本

我的Dsl型号:

Car {​​​​​
id : int {​​​​​ @Id, @AutoIncremented }​​​​​;
user : Employee;
}​​​​​
    
Employee {​​​​​
id : long {​​​​​ @Id }​​​​​ ;
name : string ;
cars : Car[] ;
}​​​​​
我正在使用这个代码:

    $jpa.linkAnnotations(4, $link, $entity.nonKeyAttributes)
    private ${link.fieldType} $link.fieldName ;
#end
我总是得到这样的结果:

    @OneToMany(mappedBy="null", targetEntity=Car.class)
    private List<Car> cars ;
    
    @ManyToOne
    private Employee user ;
@OneToMany(mappedBy=“null”,targetEntity=Car.class)
私家车名单;
@许多酮
私人雇员用户;

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

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

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

例如,名为“jpaLinkAnnot”的宏:

  • 速度宏定义(带1个参数“$link”):
  • #宏(jpaLinkAnnot$link)
    #如果($link.isOwningSide())
    //拥有方
    $jpa.linkAnnotations(4,$link,$entity.nonKeyAttributes)
    #否则
    //反面
    #如果($link.isCardinalityOneToMany())
    @OneToMany(targetEntity=${link.targetEntity.name}.class)
    #否则
    $jpa.linkAnnotations(4,$link,$entity.nonKeyAttributes)
    #结束
    #结束
    #结束
    
  • Velocity宏用法:
  • #foreach($entity.selectedLinks中的link)
    ##下面的宏替换“$jpa.linkAnnotations(…)”
    #jpaLinkAnnot($link)
    私有${link.formattedFieldType(10)}$link.formattedFieldName(12);
    #结束