我试图使用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 ;我的问题是,我总是得到mappedBy="null",如何解决这个问题?
发布于 2021-01-04 21:38:31
这是一个错误,发生在"DSL模型“中的”反向“类型链接的情况下。这个问题是由于DSL模型中缺少外键定义造成的。Foreign已被添加到新的DSL模型语法中,并将在Telosys的下一个版本中使用(即将开始)。
"$jpa“对象提供了一组函数,用作编写快捷方式,因此在此同时,您还可以创建一个用自己的代码替换"linkAnnotations”函数的速度宏(纯速度语言)。
例如,一个名为"jpaLinkAnnot“的宏:
#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#foreach( $link in $entity.selectedLinks )
## Macro below replaces '$jpa.linkAnnotations(...)'
#jpaLinkAnnot($link)
private ${link.formattedFieldType(10)} $link.formattedFieldName(12) ;
#endhttps://stackoverflow.com/questions/65417266
复制相似问题