Java中的OneToMany的使用方法
写在开头
使用jhipster声明的OneToMany在One的一方DTO中是没有与Many的DTO的映射关系的,为了在One的一方DTO中使用Many的DTO,使用以下三步解决此问题。
步骤
1.OneDTO中的"mark1"处为自己写的一对多的关系,此处变量名称不能与实体One中相应的变量名称一致,否则编译失败。
2.OneMapper中的"mark2"处uses属性添加ManyMapper。
2.OneMapper中的"mark3"处使用@Mapping注解声明Entity转DTO的映射关系。
Entity
@Entity
@Table(name="one")
publicclassOne{
...
@OneToMany(mappedBy="one")
privateSetmanys=newHashSet<>();
...
publicvoidsetManys(Setmanys){
this.manys=manys;
}
publicSetgetManys(){
returnmanys;
}
}
@Entity
@Table(name="many")
publicclassMany{
...
@ManyToOne
privateOneone;
}
DTO
publicclassOneDTO{
...
//mark1
privateSetmanyDTOS=newHashSet<>();
...
publicvoidsetManyDTOS(SetmanyDTOS){
this.manyDTOS=manyDTOS;
}
publicSetgetManyDTOS(){
returnmanyDTOS;
}
}
publicclassManyDTO{
...
privateLongoneId;
...
publicvoidsetOneId(LongoneId){
this.oneId=oneId;
}
publicLonggetOneId(){
returnoneId;
}
}
Mapper
//mark2
@Mapper(componentModel="spring",uses={ManyMapper.class})
publicinterfaceOneMapperextendsEntityMapper{
//mark3
@Mapping(souce="manys",target="manyDTOS")
OneDTOtoDto(Oneone);
...
}
@mapper(componentModel="spring",uses={OneMapper.class})
publicinterfaceManyMapperextendsEntityMapper{
...
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。