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(Set manys){ this.manys=manys; } publicSet getManys(){ returnmanys; } } @Entity @Table(name="many") publicclassMany{ ... @ManyToOne privateOneone; }
DTO
publicclassOneDTO{ ... //mark1 privateSetmanyDTOS=newHashSet<>(); ... publicvoidsetManyDTOS(Set manyDTOS){ this.manyDTOS=manyDTOS; } publicSet getManyDTOS(){ 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 { ... }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。