Java 在Telosys中使用Dsl模型生成具有链接的实体时出现问题
我正在尝试使用Telosys中的dsl模型生成JPA版本 我的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
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”的宏:
#宏(jpaLinkAnnot$link)
#如果($link.isOwningSide())
//拥有方
$jpa.linkAnnotations(4,$link,$entity.nonKeyAttributes)
#否则
//反面
#如果($link.isCardinalityOneToMany())
@OneToMany(targetEntity=${link.targetEntity.name}.class)
#否则
$jpa.linkAnnotations(4,$link,$entity.nonKeyAttributes)
#结束
#结束
#结束
#foreach($entity.selectedLinks中的link)
##下面的宏替换“$jpa.linkAnnotations(…)”
#jpaLinkAnnot($link)
私有${link.formattedFieldType(10)}$link.formattedFieldName(12);
#结束